Présentation de quelques frameworks PHP - partie 1
vendredi 15 décembre 2006
Depuis quelques temps fourmillent déjà de nombreux frameworks PHP. Cette nouvelle tendance veut permettre aux développeurs de mettre en place des solutions stables, avec un minimum de travail d'intégration ou d'apprentissages. En reprenant de bonnes pratiques comme celles des frameworks Rails ou Struts, certains proposent donc les mêmes fonctionnalités mais en PHP. Faisons donc un petit tour d'horizon de ces frameworks, avec bien sur un oeil sur l'intégration d'Ajax.
Ceci n'est que la première partie de cette présentation, avec les frameworks suivants : Cake PHP, Sympfony et Seagull. Le but étant de présenter les frameworks les plus intéressants et non de montrer l'intégralité des frameworks existants. La suite bientôt !
C'est une implémentation de design patterns déjà utilisés (notamment dans Rails) comme l'ActiveRecord ou le FrontController, le tout proposant donc un framework MVC (Model View Controller) séparant les couches de présentation, d'accès aux données et métier. L'inspiration est donc venue notamment de Rails : on y retrouve des éléments communs comme (liste non exhaustive) :
Concernant l'Ajax, il existe un support étendu à partir des "view helpers" d'AJAX et Javascript (View helper est un design pattern encapsulant la logique sans se soucier de la préoccupation).
Symfony est un framework développé par une équipe française, se basant lui aussi sur le modèle MVC en tirant son inspiration de Rails. Il est également gratuit et open source. Le but annoncé est donc de réduire le temps de développement en proposant les classes et outils nécessaires à un développement rapide et intuitif. On citera les quelques fonctionnalités suivantes (liste non exhaustive) :
Bien évidemment, Symfony propose d'autres fonctionnalités : c'est en effet l'un des frameworks les plus complets, mais cela peut parfois le desservir. Certains le trouveront trop gros, avec beaucoup de choses inutiles pour de petits sites web et pas mal de configuration. A noter également que le framework Symfony utilise PHP 5.
Seagull est un framework datant de 2001 qui à première vue semble très agréable à prendre en main. Il se base sur quelques autres frameworks comme Mojavi, Propel ou Rails. Quelques fonctionnalités (liste non exhaustive) :
Dans la suite de cet article, je présenterais d'autres frameworks qui me semblent intéressants et/ou prometteurs.
Ceci n'est que la première partie de cette présentation, avec les frameworks suivants : Cake PHP, Sympfony et Seagull. Le but étant de présenter les frameworks les plus intéressants et non de montrer l'intégralité des frameworks existants. La suite bientôt !
Cake PHP
C'est une implémentation de design patterns déjà utilisés (notamment dans Rails) comme l'ActiveRecord ou le FrontController, le tout proposant donc un framework MVC (Model View Controller) séparant les couches de présentation, d'accès aux données et métier. L'inspiration est donc venue notamment de Rails : on y retrouve des éléments communs comme (liste non exhaustive) :
- Des fichiers de configuration pour la connexion à la base de données
- Une architecture modèle / contrôleur
- Des validateurs
- Du scaffholding d'applications (à traduire par échafaudage d'applications... pas très parlant tout de même)
Concernant l'Ajax, il existe un support étendu à partir des "view helpers" d'AJAX et Javascript (View helper est un design pattern encapsulant la logique sans se soucier de la préoccupation).
Sympfony
Symfony est un framework développé par une équipe française, se basant lui aussi sur le modèle MVC en tirant son inspiration de Rails. Il est également gratuit et open source. Le but annoncé est donc de réduire le temps de développement en proposant les classes et outils nécessaires à un développement rapide et intuitif. On citera les quelques fonctionnalités suivantes (liste non exhaustive) :
- Gestion de template
- Système de cache
- Du scaffholding
- Multilingue et support d'i18n
Bien évidemment, Symfony propose d'autres fonctionnalités : c'est en effet l'un des frameworks les plus complets, mais cela peut parfois le desservir. Certains le trouveront trop gros, avec beaucoup de choses inutiles pour de petits sites web et pas mal de configuration. A noter également que le framework Symfony utilise PHP 5.
Seagull
Seagull est un framework datant de 2001 qui à première vue semble très agréable à prendre en main. Il se base sur quelques autres frameworks comme Mojavi, Propel ou Rails. Quelques fonctionnalités (liste non exhaustive) :
- Compatibilité PHP 4 et 5
- Module de CMS directement inclus
- ORM (Object Relationnal Mapping) intégré
- Gestion de cache
- Pagination
- I18n automatique
- Respect des standards : XHTML 1.1, CSS 2.0, RSS 1.0 et 2.0
Premier bilan
On remarque bien évidemment que la plupart des frameworks prennent comme modèles le framework Ruby on Rails, qui fait presque figure de référence. Alors sur quel point peuvent se démarquer les frameworks PHP ? Je pense qu'il y a deux approches :- En fonction du besoin, choisir un framework plus ou moins complet, proposant par exemple un système d'authentification ou d'internationalisation. Certains frameworks sont plus complets que d'autres, et cela peut aider à choisir.
- En fonction de la prise en main et de l'évolution probable du frameworks. La communauté PHP s'active et les choses avancent vite. Faire un pari sur l'avenir en "s'appropriant" l'un de ces frameworks ne serait pas forcément une mauvaise approche, reste à choisir celui qui par la suite proposera les fonctionnalités les plus utiles.
Dans la suite de cet article, je présenterais d'autres frameworks qui me semblent intéressants et/ou prometteurs.






