Symfony impose des normes et conventions. Il permet d'obtenir une organisation propre du projet :
Grâce aux normes et conventions que chaque développeur d'un projet Symfony doit respecter, on obtient une organisation solide des fichiers et du code.
Les avantages sont nombreux :
- Les développeurs Symfony qui maîtrisent le framework pourront facilement reprendre un projet développé à partir de celui-ci, contrairement à un projet développé en PHP "maison", où il n'y a pas de normes ni de règles imposées. Dans ce dernier cas, la phase d'apprentissage et reprise du code existant peut demander un effort conséquent pour le nouveau développeur travaillant sur le projet.
- Les fichiers doivent respecter une syntaxe particulière et doivent se trouver au bon endroit dans l'arborescence du projet. Cela garantit une facilité de maintenance sur le long terme, les développeurs savent rapidement dans quel fichier il faut aller pour apporter des modifications.
- L'architecture MVC (Modèle Vue Contrôleur) permet de découper le code représentant la logique métier de l'application et le code de présentation des vues. Ainsi, un intégrateur web voir même un webdesigner n'aura aucun mal à intervenir sur la partie présentation (vues) du projet, sans avoir à intervenir sur des fichiers PHP complexes.
- Symfony favorise la réutilisation de code, la création de tests automatisés (tests unitaires avec phpUnit ou Atoum et tests fonctionnels avec phpUnit ou Behat) et le respect des recommandations PHP-FIG (Des recommandations mondiales pour une meilleure interopérabilité entre les projets web PHP). Symfony permet donc de produire du code de qualité.
La sécurité et les performances sont au rendez-vous
Un bon framework prend au sérieux les questions de sécurité web et de performance.
La sécurité dans le framework Symfony
Symfony intègre des mesures de sécurité préventives pour lutter contre les failles et attaques XSS, CSRF et injection SQL. Contrairement à un développement PHP maison où il faut penser systématiquement à protéger chaque requête, formulaire... Symfony embarque systématiquement ces mécanismes de sécurité, sans avoir à les implémenter à chaque fois.
Autre avantage du développement d’un projet web sur mesure à l'aide du framework comparé à l'utilisation d'un CMS du marché (comme WordPress, Drupal ou Joomla), il va être moins ciblé par les hackers qui concentrent leurs efforts sur les CMS répandus sur le web et dont l’architecture et les URLs sont prédictibles.
Performances et cache sous Symfony
De base, le framework est rapide, d'autant plus combiné avec PHP 7. Mais son plus gros avantage réside dans les possibilités d'amélioration des performances qu'il offre nativement :
- Optimisation du code pour les "byte code cacher" comme APC ou OPcache permettant d'éviter de recompiler le code PHP à chaque appel et donc pouvoir afficher plus rapidement les pages du site.
- Fonctions de cache HTTP natives permettant de mettre en place facilement une stratégie de cache côté visiteur et côté serveur.
Une communauté de développeurs importante
Symfony est un framework reconnu dans le monde et présent dans le TOP 3 mondial des frameworks PHP open source. Une des grandes forces du framework est sans aucun doute sa forte communauté internationale.
Une forte communauté autour d’un framework va apporter :
- Une fiabilité du code des composants du socle: La communauté fait un réel travail de qualité et d’amélioration du code notamment à travers les pull request du projet Github..
- La création et mise à disposition de Bundles (plugins) open source permettant de gagner du temps dans le développement. On retrouve plus de 3000 bundles open source actifs sur Symfony (en 2016).
- Une documentation complète et à jour
- Des personnes qui peuvent vous dépanner en cas de problème sur votre projet Symfony via des plateformes comme Stackoverflow, Slack, forums de développeurs...
- De nombreux articles présentant des astuces et retours d’expérience intéressants pour faire les bons choix d'architecture ou techniques.
Recrutement et marché de l'emploi
Si vous faites développer votre projet par une agence web symfony, il est important de vous assurer qu’il est possible d'internaliser à terme votre projet. En utilisant un framework comme Symfony, vous êtes certains de pouvoir trouver des développeurs Symfony sur le marché qui pourront rapidement le prendre en main.
Le nombre d'offre d’emploi symfony sur le marché est un bon indicateur sur la fiabilité de la technologie et son adoption massive.