Pourquoi choisir un développement Symfony pour son projet web ?
Logiciels SaaS personnalisables, CMS, frameworks… Il existe un large panel de solutions techniques pour concevoir un outil numérique. Dans le cadre de notre approche sur mesure pour la conception de projets à forte valeur métier, nous privilégions l’utilisation du framework Symfony. Nous développons cette expertise depuis plus de 10 ans et sommes aujourd’hui officiellement certifiés.
Symfony : le framework PHP open source Made in France
Qu’est-ce qu’un framework ?
Les frameworks sont des solutions à mi-chemin entre un développement de zéro et un outil pré-conçu comme une plateforme CMS.
Littéralement, “framework” se traduit dans un contexte technique par “cadre de travail”. C’est un ensemble d’outils, de normes/conventions et de composants qui constitue et garantit une base de travail cohérente.
Les frameworks offrent donc la possibilité de construire des fonctionnalités très spécifiques, sans réinventer la roue pour les éléments communs à la majorité des applications web.
Une organisation propre régie par des normes et conventions
Symfony s’est imposé au fil des années comme le framework leader sur le marché français et un acteur important de la communauté internationale. Il a acquis cette position grâce à des normes et conventions. Celles-ci permettent à chaque développeur qui les maitrise de prendre facilement en main n’importe quel projet Symfony. Cette facilité de prise en main est assurée par des règles claires :
- Les projets respectent tous une architecture et une syntaxe unique. Il est donc possible de lancer rapidement la conception d’un nouveau projet et de limiter au maximum les phases d’apprentissage. Objectif : se focaliser sur l’aspect “métier” de la plateforme. La maintenance s’en trouve également facilitée.
- Le framework respecte les recommandations du PHP-FIG, groupe de travail international qui s’assure de l’interopérabilité des projets PHP. Le framework peut ainsi s’interfacer facilement avec un important écosystème de composants PHP. Ceux-ci permettent par exemple d’interroger des API, d’envoyer des mails, ou d’autres éléments plus techniques comme des gestionnaires de cache, de logs, etc.
- Les versions récentes de Symfony favorisent une séparation claire entre le développement back-end (code exécuté sur le serveur) et le développement front-end (code exécuté dans le navigateur). Les métiers peuvent ainsi se spécialiser tout en gardant une logique commune.
- Au-delà des conventions présentes dans le framework, la communauté Symfony a construit au fil du temps un ensemble de bonnes pratiques. Ces recommandations permettent de construire des projets qui suivent au mieux la philosophie du framework.
Novaway, une équipe de développeurs experts en Symfony
Nos développeurs disposent tous d'une expérience avérée et reconnue sur le framework Symfony. Plusieurs d'entre eux ont plus de 10 ans de pratique et nous disposons également d'une certification Symfony Sensio Labs. C'est pour nos clients l'assurance d'un projet bien conçu et maintenable dans la durée.
La sécurité au coeur de la conception
Comme tout bon framework, Symfony prend les questions de sécurité très au sérieux. Il intègre des mesures préventives contre les attaques les plus fréquentes (XSS, CSRF, injections SQL). Tous ces mécanismes sont mis en place de façon systématique sans intervention de l’équipe de développement.
Les frameworks proposent des modules, là où des outils prêts à l’emploi comme Wordpress, Drupal ou Prestashop sont un assemblage de modules pré-sélectionnés. Cette différence est importante en matière de sécurité. S’ils sont tout de même sécurisés, les CMS sont plus exposés aux menaces, la quasi-intégralité de leur architecture étant connue. Le coût de maintenance sécurité est donc plus important pour les CMS que pour les frameworks.
Performances et cache sous Symfony
Si les versions récentes de PHP offrent d’excellentes performances, Symfony va encore au-delà en apportant de façon native des améliorations supplémentaires :
- Affichage plus rapide des pages du site grâce à l’optimisation du code pour les “byte code cacher” comme APC ou OPcache qui permettent d’éviter de recompiler le code PHP à chaque appel.
- Accélération des échanges de données entre l’utilisateur et le serveur en tirant partie de la norme HTTP/2.
La force de la communauté symfony
Symfony est un framework reconnu dans le monde et présent dans le TOP 3 mondial des frameworks PHP open source. En France, il est utilisé par une très large majorité des développeurs et développeuses PHP.
L’une des grandes forces du framework est sans aucun doute sa forte communauté internationale, qui apporte de nombreux avantages :
- Une fiabilité des composants du socle : la communauté fait un réel travail de qualité, d’amélioration du code et de sa documentation notamment au travers de 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 pas loin de 3000 bundles open source actifs sur Symfony.
- Une documentation complète et très régulièrement mise à jour.
- Une entraide utile en cas de problème sur votre projet Symfony via des plateformes comme Stackoverflow, Slack, les forums de développeurs…
- De nombreuses conférences, meetups et 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
Que vous développiez votre produit en interne ou que vous fassiez appel à une agence ou des freelances, il est important de vous assurer qu’il est possible de supporter à terme les développements supplémentaires sur votre projet (évolutions, corrections…).
En utilisant un framework comme Symfony, vous êtes certains de pouvoir trouver des développeuses et développeurs qui pourront rapidement le prendre en main. Le nombre d’offre d’emploi symfony sur le marché est un bon indicateur de la fiabilité de la technologie et de son adoption massive.
Symfony est-il adapté à votre projet ?
En pratique, le framework peut répondre à tous types de projets web, API, outils métiers… Si cette adaptabilité en fait un excellent outil pour concevoir des applications à forte valeur ajoutée, ce n’est pas forcément la solution à adopter systématiquement.
Concevoir des landing pages promotionnelles avec Symfony ? Non !
Que ce soit pour réaliser des landing pages ou des sites statiques, Symfony est rarement la bonne solution. Dans ce cas précis, il est plus intéressant de partir sur un générateur de sites statiques (Jekyll, Hugo, Gatsby…) voire un micro-framework comme Silex (basé sur les composants Symfony) si l’on veut apporter un peu de dynamisme (par exemple, sur les formulaires...).
Utiliser Symfony pour la création d’un site vitrine ? Oui et non ...
Tout dépend du type de site vitrine. Si ce dernier apporte une dimension dynamique plus poussée qu’une gestion d’articles, de pages de contenus ou qu’un formulaire de contact, il peut y avoir un intérêt. Par exemple, si vous adossez un système d’espace client, une interconnexion avec un système informatique comme un ERP / CRM, un formulaire avancé, du paiement en ligne, etc. Dans ces cas, il peut y avoir une plus-value à utiliser Symfony. Dans le cas contraire, privilégiez l’utilisation d’un CMS clé-en-main comme Wordpress, Drupal (dont la version 8 repose sur les composants Symfony) ou encore Bolt, un CMS basé sur Symfony. Ce dernier permettra plus de souplesse si des évolutions futures sont à prévoir
Pour une plateforme avec de fortes contraintes de temps réel ?
Oui et non...
Si le projet demande des échanges en temps réel comme par exemple un système de chat live, une plateforme de jeux vidéos, de statistiques financières/bourse, Symfony n’est pas la solution la plus adaptée. Il est préférable de partir sur une solution de type Node.js / Socket.io qui pourra traiter plus facilement cette problématique.
Toutefois, Symfony peut être utilisé comme socle back-end et couplé à une API. En complément, des technologies plus adaptées comme Node, React.js ou Angular.js pourront être utilisée pour la partie front-end.
Des initiatives temps réelles comme Mercure commencent à voir le jour en PHP mais elles restent encore assez nouvelles et peu éprouvées.
Pour le développement d’un espace connecté de type Intranet ou Extranet ? Oui !
Symfony répond totalement au besoin pour la création d'un intranet ou d’un extranet. Il permet de développer une plateforme d’entreprise ultra personnalisée dotée de fonctionnalités adaptées à votre besoin. Le système de rôles et de gestion des utilisateurs embarqué permet de personnaliser les droits d’accès aux contenus et à leur lecture/création/modération.
Dans le cadre de la réalisation d’un outil métier avec des workflows complexes ? Oui !
Symfony est parfaitement adapté pour réaliser des outils métiers, que ce soit des ERP, des CRM sur mesure, des logiciels métiers spécifiques. Par exemple, pour optimiser des tâches quotidiennes dans une entreprise avec des spécificités liées au métier.
On dit souvent de Symfony qu’il s’agit de l’un des frameworks PHP open source les plus adaptés pour le monde professionnel. Cela est dû à sa robustesse, sa stabilité et sa modularité (très important pour ce type de projets en constante évolution). Cela en fait un framework de choix pour ce type de projets.
Pour créer une API ou des webservices ? Oui !
Symfony étant basé sur une architecture HTTP, son utilisation est idéale pour créer des webservices RESTful. Tout est natif dans le framework, de la conception des endpoints jusqu’à la sécurité des accès. Il est possible d’aller plus loin grâce à des bundles open source dédiés qui pourront être intégrés dans le projet.