jan
8

Choisir un framework PHP

Edit du 13 janvier 2011 : si vous recherchez un tutorial pas à pas sur Yii en français, vous pouvez consulter ma traduction (le premier article est ici) de la série Learning the Yii Framework de Larry Ullman.

Dernièrement, j’ai passé pas mal de temps à tenter de savoir quel serait pour moi (j’insiste sur le côté très subjectif de la conclusion de cet article) le framework le plus adapté à mon niveau et à mes besoins.

Les critères de choix

  • Popularité du framework et importance de la communauté, pour s’assurer d’une certaine pérennité et d’un support acceptables
  • Rapidité de prise en main. Je ne suis pas expert des frameworks, mais je maîtrise les concepts de la POO et du MVC. Pour moi, une prise en main rapide et une lecture facile du code du framework sont des atouts non négligeables, car ils me permettront de gagner du temps dans mes développement. Je ne veux pas passer deux heures à m’arracher les cheveux sur des classes illisibles (pour moi)
  • Performances. N’ayant effectué aucun benchmark par moi-même, je m’en remets à ceux que j’ai pu trouver ici et là, ainsi qu’aux retours d’expériences que j’ai pu lire sur Internet
  • Qualité et abondance de la documentation

Popularité des frameworks

J’ai parcouru le web pour voir quels étaient les frameworks les plus populaires, afin de restreindre mon étude à une liste d’outils disposant d’une communauté suffisamment importante. Voici ma short-list :

J’ai volontairement réduit au maximum la liste. J’aurais certainement pu m’intéresser à d’autres frameworks comme CakePHP, Solar ou Kohana. Une fois de plus, j’accepte tout à fait que mes choix puissent être mal fondés, mais argumentez, SVP : soyons constructifs.

Le choix de Yii peut paraître incongru (woaw, les mots compliqués !), puisqu’il s’agit d’un framework assez récent (première version stable en 2009). Cependant, la communauté semble en plein développement. Enfin… surtout dans le public anglophone : le forum du site officiel est très actif (en langue anglaise), mais on ne peut pas encore en dire autant du forum du site francophone (moins de 50 topics recensés à ce jour).

Concernant symfony, j’ai beaucoup hésité pour savoir si je devais me concentrer sur la version 1.4.8 ou la 2. Il me semble qu’il est encore un peu tôt pour pouvoir tirer des conclusions sur la version 2. Quand je parle de symfony dans cet article, il s’agit donc de la version 1.4.8 (sauf indication contraire).

Performances et fonctionnalités

Alors là, je sens bien le nid à trolls. Effectivement, je n’ai fait aucun benchmark. Oui, je suis bien conscient que les benchmarks officiels testent ce qu’ils veulent bien tester. Par exemple, je ne me fie pas trop au benchmark de Yii qui teste un Hello World, car dans la vraie vie, on se sert aussi d’autres choses comme des bases de données, par exemple. Ce qui suit ne sera donc qu’un résumé de ce que je pense actuellement de chacun de ces outils d’après ce que j’ai pu en lire de sources plus ou moins fiables.

  • Zend et symfony : il semble que ces frameworks soient extrêmement complets, mais que cette exhaustivité des fonctions ait un coût en terme de performances.
  • CodeIgniter : apparemment, les performances sont très correctes. Le benchmark de Pierre m’a laissé penser que ses performances ne doivent pas être trop mauvaises puisqu’il explose littéralement CakePHP dans ce test. CakePHP n’étant quand même pas un inconnu, cela est pour moi un résultat significatif. D’après cet article, le fait que CodeIgniter n’utilise pas d’ORM le rend plus rapide Edit : après vérification, je pense que ce que c’est une grosse bêtise de dire que CodeIgniter n’utilise pas d’ORM, puisqu’il implémente le pattern Active Record, qui est un type d’ORM. Ce ne sont donc pas les ORM qui sont en cause dans cet article, mais plutôt Doctrine.
  • Yii se vante un peu trop à mon goût, mais les retours des utilisateurs concernant les performances du framework sont très bons.

Zend ne contient pas d’outil vraiment performant de génération de code (scaffolding), et cela a été un critère important pour moi, car c’est quelque chose que j’ai vraiment beaucoup apprécié chez symfony et Yii.

Prise en main et documentation

Je dois dire que je n’ai pas vraiment testé Zend en tant que framework. J’ai juste utilisé certaines librairies (Zend_Mail, en particulier) dans d’autres projets. Pour un néophyte des frameworks comme moi, j’ai préféré découvrir des outils plus rigides au niveau de l’architecture du projet. La documentation est réputée pour être difficile à utiliser, mais je n’ai pas trop d’avis sur la question puisque je n’y ai pas eu recours.

Les 3 frameworks que j’ai testés sont donc Yii, symfony et CodeIgniter. Je ne suis pas allé très loin avec chacun d’entre eux, juste de quoi me faire une idée générale du fonctionnement, de l’architecture.

Question documentation, je dirais que les 3 disposent d’une documentation de très bonne qualité. Mention spéciale au tutorial Jobeet de symfony, disponible en 6 langues, et qui constitue un excellent moyen de mettre le pied à l’étrier.

Pour la rapidité de prise en main, je dirais qu’on met très peu de temps à se familiariser avec CodeIgniter. Yii est un peu moins facile, mais on s’en sort bien avec le tutoriel du site officiel. Symfony me paraît le moins facile des 3, pas par manque de documentation, mais probablement parce qu’il y a beaucoup de notions à intégrer. De ce point de vue, je dirais d’ailleurs que le tuto Jobeet va peut-être trop dans le détail pour une approche du framework. La contrepartie de cela est qu’on a une très bonne vision des capacités de l’outil à la fin des 24 chapitres (hum… séquence confession honteuse : je n’ai pas fini le tuto).

Bilan des courses

Si on prend tout ce que je viens de dire et qu’on secoue bien, il ressort que mon petit chouchou, c’est Yii (je sais pas si vous l’aviez vu venir). Assez rapide à prendre en main, il dispose d’une bonne documentation. Ses performances sont apparemment bonnes et la communauté est assez dynamique.

Cependant, j’aimerais m’investir dans un seul framework pour l’instant et j’ai quelques doutes sur Yii. En effet, la communauté n’a rien à voir avec celle des 2 mastodontes symfony et Zend. Qui plus est, ces deux-là sont développés par des sociétés importantes (Sensio pour symfony et Zend pour l’autre), ce qui permet de croire que le support et le développement de ces framework est garanti pour quelques années encore. Qu’en est-il de Yii ? Pas de société, mais un créateur, Qiang Xue, et une communauté. Pour l’instant, on est dans l’euphorie, mais qu’en sera-t-il si demain, un nouveau framework révolutionnaire supplante tous les autres (Symfony2 ?) ? D’autre part, je n’ai pas encore entendu parler de suffisamment de gros projets réalisés avec Yii pour avoir un retour d’expérience significatif. En gros : Yii, c’est hype, ou c’est vraiment bien ?

Le bilan, donc, c’est que j’hésite encore et que si des personnes avisées et pas trop partiales pouvaient m’aider, je voudrais bien savoir ce que vous pensez de mes arguments et de mes doutes.



2 Comments to “Choisir un framework PHP”

  • christophe 5 juin 2011 à 22 h 46 min

    Salut,

    Je ne suis pas développeur et donc je fouine un peu partout pour trouver un framework sur lequel partir pour apprendre à développer quelques projets persos.

    J’ai suivi un bon bout de Jobeet qui est effectivement complet mais touffu quand on est noob comme moi. Je pense que Yii est plus facile à prendre en main pour commencer (reste à voir dans l’utilisation de fonctions avancées).

    Comme je suis membre de la communauté Joomla, j’en profite pour faire un peu de promo. Le framework de Joomla va bientôt être dispo en standalone pour pouvoir développer des applications métier par exemple. Cela te donnera peut-être l’idée d’un prochain article :p. Et là pour le coup, de la grosse communauté pérenne il y en a US et FR).

    Bonne continuation.

  • Wiloooo 6 novembre 2011 à 20 h 05 min

    Pour les débutants Codeigniter est une merveille :)

Poster un commentaire

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Mots-clefs