Qu'est-ce qu'un framework ?
Un framework, ou en français « cadre de travail », est une sorte de boîte à outils permettant aux développeurs de gagner en rapidité. Prédéfinis et mutualisés, ces outils se réfèrent à des fonctionnalités clés en main, prêtes à être introduites telles quelles dans un projet de développement web. Un framework fournit donc de nombreuses briques logicielles, organisées pour être utilisées en interaction les unes avec les autres lors de la création de la base et du projet structurel d’un développement web. En somme, il permet de ne pas totalement partir d'une feuille blanche grâce à ses briques métiers prêtes à l'emploi, tout en restant libre dans le développement des différentes fonctionnalités, et l'évolution future du projet réalisé.
Vous l'aurez compris, les frameworks permettent d'accélérer et de faciliter le travail du développeur puisqu'ils gèrent toute la partie technique (architecture, structure et bibliothèque) : il n'est donc pas nécessaire de réinventer la roue à chaque fois que l'on développe un site web. Ils permettent également de faire appel à différents métiers du web (développeur, webdesigner, intégrateur...) en toute intelligence puisque le code est structuré grâce au modèle MVC. Ainsi, puisqu'il n'aura pas besoin de s'immiscer sur les fichiers PHP complexes, un webdesigner ne rencontrera aucune difficulté à intervenir sur la partie présentation du projet.
Pourquoi développer avec Symfony ?
1. Une organisation solide des fichiers et du code
Tous les développeurs qui utilisent Symfony doivent respecter des normes et des conventions particulières. Les fichiers doivent d'abord respecter une syntaxe précise et doivent être correctement placés dans l'arborescence du projet. De cette façon, s’ils souhaitent apporter d'éventuelles modifications, les développeurs sauront rapidement dans quel fichier il faut aller.
Ces normes et conventions permettent également la réutilisation des codes, la création de tests automatisés (tests unitaires et fonctionnels) et le respect des recommandations du PHP-FIG. Cela permet aux développeurs d'intégrer dans d'autres écosystèmes de développement, des segments de leurs propres frameworks, sans que cela ne pose un souci de compatibilité. Un cadre de travail uniformisé donc, mais qui permet une réelle flexibilité.
2. La sécurité au rendez-vous
Symfony embarque des mesures de sécurité préventive pour lutter contre les failles et attaques XSS, CSRF, ou les injections SQL. À l'inverse d'un développement PHP maison, où il faut sans cesse penser à protéger chaque requête, chaque formulaire... Symfony intègre systématiquement ces mécanismes de sécurité, sans qu'il ne soit nécessaire de les adapter à chaque fois.
3. Une communauté de développeurs importante
Avec plusieurs milliers de membres à travers le monde, Symfony se trouve parmi les communautés de frameworks les plus actives. Conception et mise à disposition de nouveaux bundles, fonctionnalités et documentation régulièrement mises à jour, détection d'erreurs et correction... Les utilisateurs de Symfony collaborent ensemble pour un outil toujours plus efficace.
Une importante communauté est également synonyme d'assistance : en cas de problème sur un projet Symfony, il y aura, de toute évidence, toujours une personne présente pour vous aider, que ce soit via des plateformes comme Slack ou via des forums dédiés. Par ailleurs, la multitude de blogs consacrés au framework constitue une autre source d'informations non négligeable.
4. C'est la star du marché !
Symfony est aujourd'hui reconnu par les professionnels du monde entier. Intranet, sites institutionnels, réseaux sociaux... Symfony est partout, quel que soit le secteur d’activité : Yahoo, Dailymotion, BBC, Maisons du Monde, etc. Et surtout, certains CMS tels que Drupal ou encore Ez Publish utilisent certains composants de Symfony, de quoi affirmer sa popularité !
Pour tous les projets ?
Site vitrine, intranet, outils métiers... En pratique, vous pouvez utiliser Symfony pour tous vos projets. Néanmoins, il est parfois préférable de recourir à d'autres solutions. Par exemple, pour la conception de landing-pages, il peut être plus intéressant de les réaliser en PHP maison, ou de partir sur une version micro-framework de Symfony. Pour un site vitrine, tout dépend de vos besoins.
De par son système de rôles et de gestion des utilisateurs embarqué, Symfony est conseillé pour le développement d'un intranet ou d'un extranet. Il en est de même pour la création d'une API ou de webservices, Symfony permettant la réalisation des endpoints, jusqu'à la sécurisation de leur accès.