Quel framework choisir ? 

C’est la question que tout développeur se pose à un moment dans sa carrière. Il n’y a pas de réponse exacte car il n’y a pas de bon ou mauvais framework. Chaque framework a ses particularités, ses avantages et défauts. Je vais vous présenter quelques frameworks et par la suite vous aiguiller sur lequel choisir selon vos projets.

Symfony: le puissant

Résultat de recherche d'images pour "symfony"

Créé en 2005, Symfony est un framework puissant et flexible ce qui fait son principal atout. Sa notoriété et sa maturité en font un framework sérieux stable et sécurisé, d’où sa propagation dans le monde des entreprises et l’incontournable lors de gros projets. Il suit le pattern MVC et utilise l’ORM Doctrine mais il est possible de changer d’ORM si on le souhaite. De plus, Symfony propose de nombreux bundles très appréciables comme Sonata ou fosjsrouting, etc… Cependant, c’est un framework lourd, la configuration est longue et le temps d’apprentissage n’est pas des moindres.

En effet, comptez environ 3 mois pour pouvoir réaliser un projet de petite voire moyenne envergure. C’est dans ces moments d’apprentissage que l’on apprécie à sa plus juste valeur les nombreuses documentations détaillées et claires ainsi que les tutoriels proposés par de nombreux membres de la communauté Symfony. Vous trouverez toujours solution à votre question ou à un problème que vous pourriez rencontrer lors de votre développement. Vous aurez toujours à apprendre de ce framework, il possède de nombreuses ressources et ne cesse de se développer.

Zend framework: le chef d’orchestre

Résultat de recherche d'images pour "zend framework"

Créé en 2006, Zend framework est puissant et « libre ». Je m’explique: Zend Framework apporte un ensemble de composant, libre à vous d’utiliser ceux que vous voulez et d’organiser votre projet comme vous le désirez. Evidemment, ce type de framework va vous engager à un travail supplémentaire. Il n’y aura pas de génération de code comme on peut trouver sur Symfony, CakePHP… La structure proposée est le MVC, je dis bien proposée car cette structure est optionnelle.

Il faut savoir, avant de se lancer, que la documentation est peu riche et peu claire. Ceci engage un certain effort de recherche et de codage mais à long terme cela aboutit à une liberté que l’on ne trouve pas partout. Vous pourrez étendre votre développement selon votre propre logique et votre besoin. Malgré le fait que de plus en plus de personne « boude » ce framework depuis la version ZEND framework 2, je trouve qu’il répond rapidement à des besoins complexes au vue de sa construction intelligente. En résumé, il est compliqué à apprendre, à comprendre mais une fois pris en main vous êtes libre avec un framework personnalisé et tout aussi puissant que Symfony.

CakePHP: le magique

Résultat de recherche d'images pour "cakephp"

Créé en 2005, CakePHP est robuste et simple. Il permet le développement rapide d’application et simplifie leur maintenance. CakePHP est fortement apprécié pour ses générations de codes, via la console, qui permet de créer des « model » et des CRUD. Il n’y a presque pas de configuration à faire et il s’apprend relativement vite malgré sa complexité. La structure est en HMVC et il possède un ORM poussé pour les modèles. Le plus surprenant est sa différence de comportement comparé aux autres frameworks, on se retrouve vite avec des erreurs ou des réponses inattendues mais au final on comprend vite son fonctionnement.

La « CakePhp magic » aide pas mal, en effet CakePhp va vous aider à coder tout et ce très simplement. Son système de routing est plus poussé que les frameworks de sa catégorie. C’est un framework assez puissant pour des projets conséquents, mais il ne faut pas non plus que ce soit d’énorme projet.

CodeIgniter : l’allié des développeurs

Résultat de recherche d'images pour "codeigniters"

Créé en 2006, il est léger et puissant. Il suit la structure MVC et c’est le framework le plus facile à apprendre. En effet, vous pouvez développer votre projet tout en apprenant à vous servir de ce framework. Son principal atout est qu’il n’a pas de convention de nommage comme les autres, donc beaucoup moins de contraintes pour nommer ses fichiers comme on le désire etc… La configuration est très simple et vous avez le contrôle quasi-total sur tout. De plus il est possible d’installer Doctrine très simplement ce qui est un atout considérable de mon point de vue.

La communauté de CodeIgniter est très active, on trouve beaucoup de documentations et de tutoriels ce qui rend son utilisation encore plus facile à comprendre contrairement à CakePHP. De plus, CodeIgniter dispose de nombreux plugins comme pour les modules, l’authentification … Il possède aussi des helpers que l’on ne retrouve pas forcément dans tous les autres frameworks comme la manipulation d’image.

Lequel faut-il prendre?

Tout dépendra de votre projet, votre façon de coder et de votre niveau. C’est pour cela que je n’ai pas approfondi dans l’aspect technique.

Tout d’abord, si vous n’avez pas de bases PHP, un minimum de connaissances des POO ou structures MVC, commencez par CodeIgniter ou CakePHP. Symfony ou Zend s’adressent pour des personnes avec un minimum de base, pour des développeurs de niveau « intermédiaire ». Il n’est pas impossible de les apprendre avec un niveau débutant mais le temps d’apprentissage va être extrêmement long.
En France, les entreprises privilégient le framework Symfony mais il est aussi courant de voir Zend Framework, bien que celui-ci commence à être mis à l’abandon pour Symfony. Si votre but est de vous lancez dans un avenir professionnel en entreprise, je vous conseille d’apprendre Symfony. Et puis, une fois celui-ci en main, vous pourrez apprendre beaucoup plus vite les autres frameworks.

Si vous avez un gros projet du genre boutique e-commerce etc.. vous avez deux possibilités: Symfony ou Zend Framework. Là pour vous départager ce sera selon votre envie de coder et si vous voulez beaucoup coder ou non. Si vous avez un projet plutôt conséquent sans être forcément gourmand, vous pouvez opter pour CakePHP ou CodeIgniter. Ceux-ci peuvent réaliser de petits projets ou des projets de grande envergure.

Après je ne peux que vous recommander d’essayer plusieurs frameworks pour voir lequel vous convient le mieux. De plus, seulement les plus connus et performant ont été cité, mais il en existe d’autres comme Laravel, Phalcon, Yii, etc… Ne vous limitez pas ! Il faut en tester plusieurs car certains offriront des fonctionnalités dont vous aurez une utilité que vous ne trouverez pas dans d’autres. Amusez-vous et bon apprentissage.