Dans cet article, nous abordons les trois frameworks PHP les plus populaires : Symfony, Laravel et Yii2. L'auteur compare leurs caractéristiques et tente d'aider le lecteur à choisir le meilleur outil. Cet article s'adresse aux développeurs débutants qui n'ont pas encore travaillé avec des frameworks PHP.

Pourquoi avez-vous besoin d'un framework PHP ?

PHP est l'un des langages de programmation les plus populaires et les plus demandés. Il est activement utilisé par de grands projets tels que Facebook et "Vkontakte". Les systèmes de gestion de contenu (CMS) les plus populaires, dont WordPress, sont écrits en PHP. C'est sur ce moteur que tourne environ un tiers de tous les sites de l'Internet, et environ 60 % des sites du CMS.

PHP évolue, et la version 7 a rendu le langage stable. Dans ce cas, pourquoi les frameworks sont-ils nécessaires et pourquoi sont-ils souvent utilisés à la place d'une langue maternelle ?

Voici quelques raisons :

1. Les frameworks accélèrent le développement. Par exemple, un framework PHP vous évite de devoir écrire des requêtes aux bases de données. Les frameworks mettent en œuvre les fonctions CRUD de base dont vous avez besoin pour travailler avec des bases de données.
2. Les applications écrites dans des frameworks sont facilement évolutives.
3. Il est plus facile de maintenir un projet dans un framework qu'en PHP natif. Le code des frameworks est concis et il est donc facile de travailler avec.
4. Le modèle MVC est utilisé dans les frameworks PHP. Il simplifie le développement.
5. Les applications du framework sont mieux protégées que les applications purement PHP.
6. Les cadres mettent en œuvre le principe DRY. Il permet aux développeurs d'écrire moins de code.
7. Le PHP natif permet de créer des applications. Mais les avantages mentionnés ci-dessus sont suffisants pour prêter attention aux cadres.

Informations utiles

Pourquoi Django est le meilleur framework pour le développement de sites web : un article sur les caractéristiques et les fonctionnalités du framework web populaire.

Comment choisir un Framework PHP?

Les réponses aux questions suivantes vous aideront à choisir un Framework PHP :

- Quelles sont les fonctionnalités du framework, répondent-elles aux besoins du projet ?
- Est-il difficile d'apprendre le framework sélectionné ?
- Est-il facile de faire évoluer un projet créé avec ce framework ?
- Dans quelle mesure l'outil est-il activement développé ?
- Existe-t-il une garantie d'assistance à long terme (LTS) ?
- Y a-t-il une communauté active ?

 

Symfony, Laravel et Yii2

Avant de plonger dans les détails, passons brièvement en revue les principales caractéristiques des frameworks PHP les plus populaires. Il s'agit de Symfony, Laravel et Yii2.

Symfony

  • Symfony est un ensemble de composants PHP qui peuvent être réutilisés. Ce cadre vous permet de créer des applications évolutives et productives. L'API Symfony s'intègre aux applications tierces ainsi qu'aux outils de développement frontaux comme Angular JS.
  • Symfony est utilisé par de nombreux projets populaires tels que Drupal et phpBB. Même le framework PHP le plus populaire, Laravel, est basé sur Symfony.

Laravel

À la mi-2019, il s'agit du framework PHP le plus populaire au monde. La version stable actuelle est 5.8.10. La popularité de Laravel est soulignée par le fait suivant : de nombreux hébergeurs proposent des solutions spéciales pour les applications créées avec ce framework.

Yii2

  • Yii a été introduit en 2008. Il s'agit d'un cadre sécurisé, rapide et productif pour le développement d'applications web. La version actuelle est 2.0.19.
  • Yii2 utilise le gestionnaire de paquets Composer pour gérer les dépendances. Grâce au chargement paresseux, Yii2 est considéré comme le framework PHP le plus rapide.
  • Une autre caractéristique de Yii2 est l'intégration avec jQuery. Cela permet aux développeurs frontaux de travailler plus facilement avec les applications développées dans Yii2. Comme Symfony, Yii2 utilise des composants préconstruits. Cela accélère le développement.

Quel Framework est le meilleur pour PHP ?

Tous les frameworks répertoriés conviennent au développement d'applications web. Toutefois, ces outils présentent des différences qu'un développeur doit prendre en compte. Les détails sont les suivants.

Outils de création de modèles

Les frameworks de modélisation accélèrent le développement et simplifient la création du front-end de l'application. Par exemple, les outils de modélisation sont utilisés pour automatiser l'échappement HTML.

Symfony

Par défaut, Symfony utilise Twig. Il s'agit d'un moteur de création de modèles qui vous permet d'écrire du code propre et d'étendre les capacités du PHP natif. Par exemple, Twig permet de créer facilement des séquences d'échappement.

{{ var }} {{ var|escape }} {{ var|e }} {# échappement des variables #}


Laravel

Ce framework utilise le moteur de création de modèles Blade. Il vous permet d'utiliser du code PHP dans les vues. Blade n'a pratiquement aucun effet sur la vitesse de l'application car les vues sont stockées dans des fichiers séparés portant l'extension .blade.php. Le code de la vue est converti en PHP natif.

Yii2

Ce framework n'utilise pas de modèle tiers par défaut. Cependant, le développeur peut choisir les outils qui sont nécessaires pour différentes tâches. Parmi les outils de modélisation recommandés figurent Twig et Smarty.

Conclusion intermédiaire : il n'y a pas de vainqueur clair sur ce critère. Tous les frameworks prennent en charge la création de modèles, ce qui accélère le développement frontal des applications. Yii2 a un léger avantage car il n'utilise pas de moteur de template par défaut.

 

Apprendre Laravel

Le cours Laravel fait partie de la profession de programmeur PHP. Les premiers cours de la profession sont disponibles gratuitement après inscription.

Modularité

Symfony a des composants standards qui peuvent être utilisés pour construire des applications. En d'autres termes, Symfony est un excellent exemple de cadre modulaire.

Yii2 met en œuvre l'approche MVC. Il offre des composants mais pas autant de modularité que Symphony.

Laravel est inférieur à Symfony et Yii2 dans sa capacité à utiliser la modularité pour développer des applications.

La réponse courte est : si vous voulez un framework PHP modulaire, choisissez Symfony.

Installation du Framework

Chaque Framework offre plusieurs options de déploiement. Par exemple, Symfony, Laravel et Yii2 peuvent être installés avec le gestionnaire de paquets Composer. Tous les frameworks, une fois installés, vous permettent de travailler avec une application modèle.

Conclusion intermédiaire : il n'y a pas de vainqueur en termes de facilité d'installation, chacun des trois outils est facile à installer. 

Vitesse de développement

Symfony est considéré comme un framework robuste avec une communauté importante et active derrière lui. Laravel évolue rapidement et occupe la première place dans la liste des frameworks les plus populaires. Yii2 assure la performance des applications.

Si vous devez créer une application web le plus rapidement possible et que vous n'avez jamais travaillé avec des frameworks PHP, choisissez Laravel. Laravel est le plus facile à apprendre, et il y a plus de tutoriels Laravel sur le web.

Performance

Selon l'auteur de l'article original, le framework le plus productif est Yii2. C'est le choix optimal pour la construction d'applications à forte charge.

Les performances de Laravel sont une question discutable. Selon ce critère, il cède la place à Yii2 et Symfony. Mais vous pouvez néanmoins trouver de nombreuses recommandations sur l'accélération des applications Laravel.

Soutien aux bases de données

Selon ce critère, le leader incontesté est Symfony. Yii2 et Laravel sont à la traîne. Vous pouvez voir les informations spécifiques dans le tableau.

Laravel  / Yii2 / Symfony
Microsoft BI  / Microsoft BI  / Apache Jackrabbit
MongoDB /  MongoDB / CouchDB
MySQL / DynamoDB
PostgreSQL / PostgreSQL / GraphDB
Redis / Redis / MemBase
SQLite / SQLite  / MemCasheDB


Communauté et ressources

Une communauté active et diversifiée garantit le soutien et le développement à long terme de l'outil. De grandes communautés se sont formées autour des cadres en question. La communauté Symfony est la plus mature.

Un point important est qu'il est préférable d'évaluer l'avenir d'un cadre non pas par la taille statique de sa communauté, mais par sa dynamique et son activité.

Si vous évaluez la ressource de la documentation et des tutoriels, Laravel est le leader ici.

Extensibilité

La fonctionnalité des frameworks augmente avec l'aide d'extensions ou de paquets. Selon ce critère, Laravel reste le leader. Dans le catalogue Packalyst, vous trouverez environ 9000 paquets pour Laravel.

Yii2 et Symfony comptent respectivement 2800 et 2830 extensions. Si la possibilité d'étendre la fonctionnalité standard du framework avec des paquets supplémentaires est importante pour vous, le choix est évident.

Similitude des caractéristiques

Ci-dessus, nous avons examiné les différences entre les cadres. Il est maintenant temps de se concentrer sur les caractéristiques similaires. Les voici :

- Ces trois outils appartiennent tous à des frameworks fullstack. Ils fournissent un cycle complet de développement d'applications web, y compris le front-end et le back-end.
- Il s'agit de projets open source qui peuvent être trouvés sur GitHub.
- Il existe de nombreuses communautés actives derrière Symfony, Laravel et Yii2.
- Ces trois cadres prennent en charge le mappage objet-relationnel (ORM). Par conséquent, ces outils sont pratiques à utiliser dans le paradigme de la programmation orientée objet.
- Les frameworks répertoriés sont des outils fiables et sûrs pour la création d'applications web.

Vous n'arrivez toujours pas à choisir un framework ? Voici un énoncé de thèse pour vous aider à décider :

Par Symfony :

  • il existe des versions LTS du framework ;
  • Fonctionnalité étendue prête à l'emploi ;
  • c'est le cadre le plus stable ;
  • des composants prêts à l'emploi sont disponibles, ce qui permet une approche modulaire du développement des applications.


Sur Yii2 :

  • supporte Ajax ;
  • assure la performance des applications ; il s'agit du cadre le plus stable
  • est un cadre facilement extensible ;
  • Il dispose d'un vérificateur d'erreurs intégré ;
  • Convient pour le développement de services web RESTful.


Par Laravel :

  • Le framework PHP le plus populaire ;
  • dispose d'un gestionnaire de paquets intégré, Composer ;
  • un support prêt à l'emploi pour les tests unitaires ;
  • un grand nombre de paquets permettant d'étendre les fonctionnalités.


Conclusion

Symfony, Laravel et Yii2 sont d'excellents outils pour développer des applications web. L'auteur de l'article original préfère Laravel. Mais dans le même temps, il estime que Symfony et Yii2 ne sont pas des outils moins puissants. Symfony peut être caractérisé par sa forte communauté, tandis que Yii peut être caractérisé par sa fiabilité et sa sécurité.

N'hésitez pas à indiquer dans les commentaires le framework PHP que vous avez choisi.