Un nombre important de frameworks est aujourd'hui disponible sur le marché et il n'est pas toujours évident de les différencier. Pour bien choisir, il y a quelques critères à prendre en compte qui vous permettront d'ores et déjà de faire une présélection. Cependant, ce sera à vous de prendre un peu de temps pour tester ces frameworks et voir celui qui répond le mieux à vos besoins. D'autant plus qu'il n'y a pas de framework idéal, à chacun vous y trouverez ses avantages et inconvénients.
Le principal intérêt d'un framework est d'accélérer le temps de développement, de conserver une homogénéité du code et une pérennité dans vos projets, mais aussi de sécuriser plus facilement vos
applications.
Dans les plus connus, on trouvera : Symfony, CakePHP, Code Igniter,
Jelix, Prado, Solar...
Ils intègrent généralement les mêmes composants : implémentation du MVC, Scaffolding, support de l'internationalisation, système de cache, sécurisation du code (faille XSS)...
Il y a évidement le Zend Framework qui se différencie en proposant une liste de briques que vous pouvez utilisez indépendemment. Par exemple, rien ne vous oblige à structurer vos projets sur une
architecture MVC, vous pouvez aussi utiliser votre propre moteur de template. Donc contrairement aux autres frameworks, ce que certains trouveront sûrement contraignants, il faudra
obligatoirement passer par cette étape de choix d'architecture et de mise en place de vos briques.
Voici quelques critères indispensables dans le choix d'un framework :
- Facilité de prise en main : dans tous ces frameworks, il y a obligatoirement une période de prise en main plus ou moins longue selon le framework et les compétences du développeur. Il s'agit d'un critère à prendre en compte lors de la venue d'un nouveau développeur dans une équipe qui peut ne pas connaître le framework.
- Flexibilité / Souplesse : il est important de distinguer les contraintes imposées par le framework, en effet un défaut que l'on retrouve avec certains de ces frameworks, le développeur doit s'adapter au framework et « se plier » à certaines règles et non le contraire.
- Taille des projets développés (site vitrine, backoffice...) : il sera préférable de s'orienter vers un framework léger pour développer un site statique.
- Documentation : elle doit être complète, claire et régulièrement mise à jour; des tutoriaux sont aussi de plus en plus proposés.
- Performance du framework : malgré les systèmes de cache, certains frameworks peuvent s'avérer assez « gourmand »
- Communauté : ne pas hésiter à tester la réactivité de la communauté sur les forums en postant quelques questions.
- Evolutivité : voir les futures évolutions prévues
Pour vous aider, vous trouverez des tutoriaux parus sur le site IBM comparant les frameworks Zend, Symfony et CakePHP, de l'installation au support de l'ajax.
Liste de frameworks PHP
Ci-dessous, une liste plus ou moins exhaustive des frameworks en PHP disponibles.
- Agavi — un framework open-source écrit en PHP5 (site du projet)
- Akelos Framework — un framework web open-source écrit en PHP
- AWF
- CakePHP — un framework web open-source écrit en PHP (site du projet)
- Castor — un framework web open-source écrit en PHP (Site du projet)
- Graniware est le cadre d'application libre développé par la Région Limousin.
- Code Igniter
- Copix Un framework PHP 5 léger et performant
- Cerebral Cortex
- FastFrame
- Freedom
- Hoa Framework — un framework complet, open-source, écrit en PHP 5.
- Horde
- InterJinn
- Ismo
- Jade
- Jelix Un framework PHP5 moderne, léger et performant. Il propose : MVC, templates, générateurs de sorties, Services Web ...
- LampShade
- Medusa
- MODx framework de gestion de contenu (CMF = CMS + Framework) hautement flexible
- Mojavi
- nano
- PEAR - framework de référence du langage PHP
- PHP2Go
- phpJaz
- php.MVC
- PatTemplate
- PHP on TRAX
- PHP Studs
- Portix-PHP - framework léger écrit open-source en PHP reposant sur un système original de base de données.
- PRADO — un framework web open-source orienté objet, à base de composant et écrit en PHP (site du projet)
- Pxxo — framework pour créer des composants graphiques (widgets)
- QCodo - un framework MVC pour PHP 5, opensource
- Simian
- Seagull — un cadre de développement open-source compatible avec la version 4 et 5 du PHP (site du projet)
- Stato Framework PHP5
- Symfony — un framework web open-source écrit en PHP version 5 (site du projet)
- TYPO3 - open-source écrit en PHP, qui constitue également un Système de gestion de contenu (CMS)
- Vae Soli! — un framework web open-source écrit en PHP version 5 (site du projet)
- WASP — un framework web open-source écrit en PHP version 5.
- Zend Framework Le Framework supporté par Zend et IBM
- ZNF
- xuserver.net framework PHP intégrant les modèles de données DBDesigner