Les meilleurs frameworks PHP 2015

Pour créer un site web performant, sécurisé en PHP, avec toutes les fonctionnalités des applications modernes, sans réinventer la roue, ni passer sa vie à taper du code, le mieux est d’utiliser un framework. Mais quel framework PHP utiliser ? Cette question, beaucoup de programmeurs se la posent. Avant de s’investir dans un long travail d’apprentissage, le programmeur doit savoir si ce travail d’appropriation du framework vaut la peine d’être entrepris. Dans cet article, je vous donnerai quelques pistes de réponses et de réflexions, basés sur des tests personnels réalisés sur différents frameworks, ainsi que sur des statistiques de recherches de google trend. Bien sûr, mon avis ne sera pas obligatoirement partagé par tous, mais il aura au moins le mérite de donner quelques bases pour votre choix et d’ouvrir le débat.

1. Les statistiques de recherches sur Google

 

Recherches sur Google, de 2004 à aujourd’hui, pour les 5 frameworks : Laravel, CodeIgniter, Symfony, Cakephp et Zend Framework.

  • Recherches pour le monde entier
  •  Recherches pour les Etats Unis

 

  • Recherches pour la France

 

Si on regarde les statistiques à l’échelle mondiale, Laravel est le framework PHP du moment. Le petit dernier du groupe php vient de dépasser ses aînés et sa progression semble ne pas s’arrêter là. Le second framework qui tire son épingle du jeu est CodeIgniter. Il est dépassé au plan mondial par Laravel, mais alors que les autres frameworks sont en perte de vitesse, CodeIgniter se maintient et même poursuit sa progression. Par contre, au niveau de la France, le framework préféré des français reste largement notre framework franco-français, Symfony (2). Cette tendance en France et dans pas mal de pays européens semble établie sur le long terme.  

2. Description des principaux frameworks

2.1. Laravel

Comme nous l’avons vu, le frameworks PHP de 2015 est sans conteste Laravel. Sa progression dans le classement des recherches google trend est impressionnant. Mais qu’en est-il de la mécanique du leader lorsqu’on décortique sa cuirasse ? Ce que l’on trouve sous le capot de la bête est à la fois très intéressant et inquiétant. Un projet Laravel se crée à partir de composer. Il n’est donc pas possible de décompresser une archive pour créer un projet. Mais une fois composer installer, la création d’un projet Laravel est un jeu d’enfant. Comme tous les frameworks, Laravel est basé sur une structure MVC (modèle - vue - contrôleur), mais avec quelques curiosités. Tout d’abord, Laravel se fonde sur des méthodes statiques (appelée avec ::). Cette manière de fonctionner simplifie la programmation, mais complique un peu la création de ses propres classes et méthodes. La machinerie du cœur du framework est assez complexe avec un système d’injection de dépendances. Certaines bibliothèques sont empruntées à Symfony (Cocorico). On ne fait pas que des trucs nuls en France. La documentation est un point crucial pour l’apprentissage. Elle est globalement assez bien faite et en français, mais la manière d’aborder la programmation MVC dans la doc me paraît mal adaptée pour les débutants. La partie modèle possède un niveau d’abstraction élevé, grâce à l’ORM Eloquent. Avec Eloquent, fini les requêtes SQL de Grand Papa. Son niveau d’abstraction est assez proche de ce qui se fait dans Django (framework Python) pour ceux qui connaissent. La création des modèles peut se faire en lignes de commandes, ce qui apporte un gain de temps indéniable. La partie vue est également performante, avec blade, un système de templating qui permet l’héritage de templates etc. Bref, que des bonnes choses. Passons à ce qui pour moi pose problème. Laravel est particulièrement souple. Vous pouvez faire absolument tout ce que vous voulez. En particulier, le fameux fichier route.php dans lequel on devrait mettre les routes gérant les url, peut contenir à peu près tout. On pourrait créer un site complet en n’utilisant que le fichier route.php. Un autre point inquiétant vient de la documentation de Laravel. Le tuto commence en vous expliquant comment faire n’importe quoi avec ce fameux fichier route.php. Pour ma part, je pense que les bonnes pratiques en programmation, comme le respect du MVC résultent d’une longue expérience des programmeurs et devraient être suivies. Donc soit les concepteurs de Laravel sont des visionnaires, soit il faut se contraindre davantage que ce que ne propose le framework. En conclusion, Laravel est un bon framework, efficace, facile, plaisant à utiliser, rapide, avec une faible empreinte mémoire. Il faudra néanmoins faire attention à ne pas abuser de la liberté offerte.

2.2. CodeIgniter

En seconde position, CodeIgniter reste un framework très utilisé et à juste titre. C’est de très loin le framework qui requière le temps d’apprentissage le plus faible. En une ou deux heures d’apprentissage de codeigniter, le débutant maîtrise déjà l’essentiel du framework. Il faut dire que la documentation de CodeIgniter est exceptionnellement bien faite et traduite en français. Le framework est un des plus rapide des frameworks php existant, avec une empreinte mémoire faible. On reprochera à CodeIgniter d’être un peu trop verbeux. En effet, il nécessite un peu plus de lignes de codes que les autres, peut-être parce qu’il est plus proche du PHP brut. Le point positif est que l’intégration de vos propres classes ou bibliothèques se révèle particulièrement simple. Il existe un système de templating basique,  beaucoup moins sophistiqué que celui de laravel, mais qui permet quand même de décomposer votre page en envoyant plusieurs vues à la même page. Si vous débutez avec les frameworks PHP, il n’y a pas à hésiter, CodeIgniter est celui qui vous demandera le moins d’efforts et vous offrira une bonne initiation à la programmation MVC.

2.3. Symfony 2

Symfony 2, le framework PHP français reconnu partout dans le monde, encore une fois cocorico !!! C’est également framework numéro un en France. Plus lourd et plus complexe à appréhender que CodeIgniter ou Laravel, il reste une valeur sûre parmi les frameworks PHP, surtout en France. Il est beaucoup plus contraignant que les frameworks précédents, mais ici c’est la rigueur qui est privilégiée. Symfony est conçu sur un le concept de Bundles. Toute application Web est un Bundle. Il faudra aussi être capable de manipuler les namespaces et d’autres caractéristiques de ce genre pour maîtriser Symfony. Enfin, le mode debug offre des renseignements intéressants lors de la création de votre application web. Si vous souhaitez travailler avec une agence française et que vous maîtrisez la programmation MVC, Symfony est probablement le framework qu’il vous faut, mais son apprentissage vous prendra peut-être une peu plus de temps.

2.4. CakePHP

CakePHP tire son épingle du jeu depuis de nombreuses années. Ce framework offre un très bon compromis entre la rigueur et la flexibilité, entre les grosses applications et les petits sites. Le principe de la programmation MVC est bien respecté. Le framework permet de créer des projets de toutes tailles. Sa grande polyvalence est probablement son point fort. CakePHP possède lui aussi un système de templating qui offre pas mal de possibilités, mais pas d’héritage de templates. Si vous cherchez la rigueur sans trop de contraintes et une certaine polyvalence, CakePHP est pour vous.

2.5. ZEND Framework

Zend framework est très populaire en France. Il a eu son heure de gloire, mais semble sur le déclin depuis plusieurs années. Je n’en dirai guère plus sur ce framework, car c’est celui que je connais le moins et que j’ai écarté de ma liste.  

2.6. Yii Framework

Yii, yes it is, est un framework assez original qui mérite qu’on en dise quelques mots. Le début de la création d’un projet se fait en ligne de commandes. En quelques instructions, on se retrouve avec un site ou un blog déjà prêt à l’emploi. Les tables de la base de données sont crées en deux coups de cuillère à pot et un système de scafolding permet d’ajouter des entrées dans la table très facilement. A ce stade, Yii distance largement tous ses concurrents. On est déjà au stade du site opérationnel alors que pour les autres frameworks sont toujours au codage. Mais ensuite, si on souhaite modifier l’apparence la disposition des éléments, il faut rentrer dans le framework, apprendre les namespaces et la stuture de Yii. Donc au final, on n’est pas dispensé de l’apprentissage du framework.  Néanmoins, c’est un framework intéressant que je conseillerais si vous voulez sortir des sentiers battus et créer rapidement.   Il existe bien d’autres frameworks tous avec des caractéristiques intéressantes. Par exemple Phalcon php qui utilise une dll pour fonctionner. Il a paraît-il les meilleures performances parmi les framework PHP, mais pour ma part je n’ai pas réussi à l’utiliser. D’autres sont aussi prometteurs comme FuelPHP ou Kohana par un des fondateur de CodeIgniter, mais ils restent encore confidentiels et le recul manque pour donner un avis éclairé sur ceux-ci. Ce petit tour d’horizon des frameworks PHP est terminé. N’hésitez pas à réagir ou à partager sur les réseaux sociaux.

Partager