Symfony et Laravel : Retours d’expérience de développeurs PHP

Nos collaborateurs évoluent sur différents environnements techniques en développement Web, Mobile, Infra/ Cloud et Data.
Nous vous proposons un tour d’horizon des différentes technologies utilisées par nos experts techniques. Après l’univers JavaScript, c’est au tour de l’écosystème PHP.

CBTW
L’Actualité Tech — Blog CBTW
10 min readJul 22, 2021

--

Gauthier B, Eliott De Seguier et Frédéric Oddou, développeurs web, partagent leur expérience avec le langage PHP et ses frameworks Symfony et Laravel : Comment les ont-ils découverts ? Comment et pourquoi les utilisent-ils et recommandent-ils ?

Écosystème PHP — Photo by Ben Griffiths on Unsplash

PHP est un langage libre orienté back-end et dédié à la création de pages web dynamiques côté serveur. De nombreux sites web ont été développés dans ce langage (78,9% de l’ensemble des sites web avec un langage de programmation côté serveur d’après W3Techs) et plus d’un tiers des développeurs français l’utilisent aujourd’hui selon une enquête de Jet Brains. Il s’appuie sur une large communauté qui contribue à son évolution, des prémices de 1994 à aujourd’hui.

Mis au point par SensioLabs à l’origine, Symfony est un framework PHP qui réunit des composants modulables pour faciliter le développement de sites et d’applications web. Ce framework est utilisé par plus de 600 000 développeurs à travers le monde.

Créé en 2011, Laravel est un framework PHP multiplateforme qui regroupe bibliothèques existantes et composants originaux.

C’est quoi PHP pour toi ?

  • Gauthier : Le premier mot qui me vient est communauté. En France, on retrouve notamment l’AFUP, Sensiolabs et tous les événements types SymfonyCon, SymfonyLive, …
    PHP m’a très vite plu. De par sa simplicité d’apprentissage, on obtient des résultats rapidement. C’est également un langage qui est mis à jour régulièrement et qui est de plus en plus typé. Au début, j’ai apprécié son côté permissif, pas trop verbeux… Puis le langage a évolué, aujourd’hui avec les dernières versions (PHP8), le langage est de plus en plus pro, structuré et c’est tant mieux.
  • Eliott : PHP est un langage toujours au goût du jour, pas mal de sites l’utilisent sur le marché. Laravel, un peu comme Symfony, représente l’innovation dans PHP. Ils reposent sur une super communauté, de bonnes pratiques mises en place… PHP c’est avant tout une communauté forte et un langage qui évolue avec son temps.
  • Frédéric : PHP est un bon langage de programmation orienté back-end qui peut être adapté à vraiment tous les niveaux, donc de débutants à experts. C’est facile pour commencer.

Comment as-tu découvert PHP ?

  • Gauthier : Je connais PHP depuis longtemps. J’ai commencé la programmation à 12 ans avec du C, à cet âge c’était plutôt compliqué, je ne comprenais pas tout. J’ai donc basculé sur du web qui me semblait plus accessible. J’ai très vite eu besoin de dynamiser les sites que je créais, ajouter des bases de données, etc. J’ai donc essentiellement appris en travaillant sur des projets personnels. Puis, j’ai découvert Symfony pour créer une plateforme de partage de cours dans le cadre de mon BTS SIO. J’ai bien galéré, j’ai fait plein d’erreurs, plein de trucs pas très propres mais ça a été très formateur… Puis j’ai continué à progresser avec la création d’un site de tournois LoL que je mettais à jour au fil des versions.
  • Eliott : J’ai découvert PHP un peu par hasard. J’ai fait mon premier stage en Laravel. Mon responsable voulait se lancer sur la techno pour le développement de notre projet. Je ne me suis pas vraiment posé de question sur le moment, j’avais déjà fait du Symfony en cours. Et au final, j’ai beaucoup apprécié la manière de coder de Laravel, donc le hasard a plutôt bien fait les choses.
  • Frédéric : Cela remonte au début du collège. J’avais commencé à utiliser du html/ css. J’avais réalisé un site pour référencer tous les épisodes de la série Simpsons, classés par saison etc. Et je trouvais qu’il y avait des limites avec le html/ css. Si je voulais rajouter une page, je devais créer un nouveau fichier html pour chaque page. Et cela m’embêtait de fonctionner comme ça, car si jamais je devais modifier quelque chose dans le menu, je devais le modifier dans toutes mes pages. Donc j’ai voulu apprendre autre chose pour que ce soit plus dynamique. J’ai donc commencé avec PHP car c’était le langage le plus utilisé et tout le monde en parlait. C’était le langage du moment. J’ai donc débuté dessus, et il y avait tellement de documentations disponibles sur Internet que ça a été facile d’apprendre.

Quel est ton framework / ton outil de prédilection basé sur PHP ?

  • Symfony — Frédéric : Symfony sans aucune hésitation ! C’est un framework qui laisse quand même beaucoup de choix. Et je préfère pouvoir faire à ma façon plutôt que d’être ancré dans une façon désignée de base par une autre personne. Par exemple, avec Symfony je peux aller vers tous les types d’architecture, je peux utiliser ou non certains composants, … Je suis vraiment libre niveau configuration.
  • Symfony— Gauthier : Il y a quelques années, il fallait choisir entre Zend et Symfony. Je suis parti sur Symfony car le framework était français, j’avais envie d’y croire et au final j’ai plutôt bien fait. J’ai commencé sur la version beta de Symfony 2. Ce qui m’a plu c’est que les développeurs étaient repartis de zéro en se basant sur les retours de la première version. Quelques années plus tard, avec Symfony, je suis clairement dans ma zone de confort.
    Laravel est arrivé en France un peu après, et je ne me suis pas dit “Tiens je vais changer”, j’ai préféré me concentrer sur Symfony et développer une expertise. J’ai tout de même testé Laravel et au final l’approche est différente mais beaucoup de composants restent assez proches.
  • Laravel — Eliott : Laravel, car j’apprécie les fonctionnalités et possibilités qu’offre le framework, la manière qu’on a de coder avec. Je navigue facilement dans l’architecture des projets et je trouve que les composants du framework sont faciles à apprendre et utiliser, et permettent de répondre à des problématiques complexes. La communauté autour du framework est aussi super vivante et accessible, ce qui est appréciable (on peut facilement contribuer au projet). Dernier point sur la documentation que je trouve très claire, et comme tout développeur y passera du temps je trouve que c’est important !

Dans quels cas recommanderais-tu l’utilisation de PHP ?

  • Gauthier : Pour les sites web classiques : on peut très bien l’utiliser pour un site e-commerce, un back office, une API…
    Également tout ce qui est lié au SEO aime bien PHP car il délivre du HTML. A contrario les moteurs de recherche n’apprécient pas vraiment JavaScript car ils ne l’interprètent pas. Attention, je ne dis pas que les langages front sont mauvais pour le référencement, c’est surtout qu’il faut ajouter des éléments pour l’optimiser alors que dans PHP c’est inclus de base.
    Je privilégierais également Symfony pour les projets à grande échelle. Développer en PHP peut demander un peu plus de temps qu’avec d’autres langages (Node par exemple) mais apporte un certain cadre. Le langage est bien approuvé côté serveur, les paquets PHP sont bien gérés, les mises à jour faciles. Il s’agit d’un écosystème robuste et sécurisé. Toute la gestion applicative du cache est également très bien gérée.
    Au-delà du cadre de travail qu’apporte Symfony, il y a aussi tout une partie sécurité qui est importante. On n’y pense pas forcément mais Symfony apporte beaucoup de sécurité sur les failles connues (CSRF par exemple). Il reste tout de même important de sensibiliser les développeurs à toutes ces failles qui sont gérées automatiquement par le framework afin qu’ils puissent les prendre en compte sur d’autres projets. Il est essentiel de toujours comprendre ce qu’on utilise !
  • Eliott : PHP peut répondre à tous les besoins, des projets à base de ligne de commande, du web, de la gestion de requêtes…
    Laravel est conseillé pour les sites robustes nécessitant de bonnes pratiques de développement, il est parfait pour créer des APIs. Laravel permet même de créer une SPA via InertiaJS.
  • Frédéric : Pour tout ce qui est application mobile, bonne chance ! Et c’est de moins en moins utilisé pour du front, voire plus du tout. Mais ça reste toujours idéal pour du back-end.
    Et dans tous les cas on peut utiliser Symfony. Après ça va aussi dépendre des environnements ou des entreprises. Par exemple pour être efficace avec du code rapide à produire on peut privilégier Laravel. Mais pour un projet sur mesure Symfony me semble plus adapté.

Quel a été l’impact de PHP dans ta vision du développement ?

  • Gauthier : Symfony a été mon premier framework. Les bundles m’ont particulièrement marqué, plutôt utile d’avoir des choses réutilisables dans d’autres projets, cela m’a appris à faire des choses les plus génériques possible. Symfony a également été ma porte d’entrée pour m’initier aux bonnes pratiques et aux patterns de développement comme SOLID par exemple.
  • Eliott : C’est en regardant le Github de Laravel et l’organisation du framework que j’ai adapté ma manière de coder. Au début j’avais le sentiment qu’on m’avait donné plein de petits outils puis en regardant le code, je me suis aperçu que les design patterns étaient directement utilisés dans le framework et cela m’a permis de mieux comprendre leur fonctionnement et leur utilité.
  • Frédéric : Au départ quand j’ai appris à développer, je développais surtout pour moi donc je connaissais mon code par cœur, mais ça aurait été plus compliqué de le partager à quelqu’un d’autre. Avec un framework comme Symfony tout le monde connaît et a les mêmes repères, c’est donc beaucoup plus facile. Et en plus de ça Symfony a beaucoup de fonctionnalités, de commandes pour aider, de patterns, qui auraient été vraiment très longs à mettre en place avec du PHP natif.

Pourquoi devrait-on apprendre à développer en PHP ?

  • Gauthier : PHP permet de faire des sites mais pas que, ça fonctionne également très bien pour faire des scripts. Je dirais que c’est un ‘bon’ langage : grosse communauté et beaucoup de meetups, un bon suivi, des mises à jour régulières, très présent sur le marché…
    À côté j’adore Ruby, mais peu d’entreprises l’utilisent et à raison car les performances ne sont pas incroyables mais le langage en lui-même reste très sympa.
    Je suis fier de dire que je suis dev PHP. Le langage avait une mauvaise réputation jusqu’à la version 5.6 incluse à cause du système de typage qui n’existait pas et d’autres trucs un peu bizarres… Mais petit à petit les choses s’améliorent :).
  • Eliott : Pour les développeurs Symfony, Laravel permet de voir une nouvelle facette de PHP. L’approche est différente et au-delà de l’opinion de chacun, il est intéressant de comprendre comment Laravel et Symfony fonctionnent pour aller encore plus loin dans la compréhension de son framework de prédilection.
    Pour les développeurs JS : PHP permet de découvrir d’autres concepts et paradigmes.
  • Frédéric : Concernant PHP, il faut regarder le marché. Actuellement les plus grands sites fonctionnent avec PHP en France (médias, e-commerce) et à l’international (Facebook a commencé avec du PHP et en a toujours). Ça reste dur de s’en passer et c’est vrai aussi dans l’univers des start-up qui ont démarré avec du PHP car c’était simple pour commencer.
    Ensuite pourquoi apprendre Symfony : c’est un outil qui permet d’aider au développement, c’est un support et le fait de l’utiliser permet de partager les mêmes standards que d’autres applications. C’est standardisé et ça se met à jour facilement. De plus, il y a une grosse communauté derrière et Symfony continue d’évoluer. Dès qu’il y a eu la sortie de PHP 8, Symfony s’est mis à jour de suite. Tout ce dont on a besoin pour le développement, on l’a avec Symfony. Dans mon cas c’est très rare que j’ai à installer des packages autres qu’avec des composants Symfony.

Quel est le ‘truc en plus’ de PHP et de ses frameworks ?

La Communauté, dont une grosse communauté française. C’est un langage qui date mais qui pourtant évolue au fil des ans. On en est à PHP 8, qui est une version très performante. C’est toujours un plaisir de voir un langage qui se met à jour.
Et cela va avec un volume important de documentation. Ce qui facilite encore davantage l’apprentissage de ce langage, qui est déjà lui-même aisément accessible.
Et il permet aussi de faire chacun à sa façon : on peut typer ou non, faire de l’objet ou ne pas en faire, … C’est libre !

Quelles sont les limites de PHP ?

Le langage ne gère pas l’instantanéité, pour illustrer, il faut faire appel au serveur toutes les 3 secondes pour savoir s’il y a un changement d’état, ce qui n’est pas l’idéal pour les tchats typiquement. Pareil pour le mobile et tout ce qui est embarqué.
PHP a également du mal avec l’asynchrone et les problématiques d’IA et de data science. En effet, le single process peut être limitant. Par exemple, si un utilisateur fait une requête sur un site, on va lui répondre. Et une fois qu’on aura répondu ce sera terminé. Et si on devait faire des actions complémentaires en parallèle ou en aval, ça poserait problème. De ce fait, il est nécessaire de mettre en place d’autres types d’architectures plus complexes pour répondre à ces besoins-là. Cela a toutefois l’avantage de forcer à réaliser une architecture résiliente et qui respecte davantage les patterns SOLID (single responsability).
Pour tout ce qui est calcul, arithmétique, PHP reste aussi assez limité, on peut le faire mais ça ne sera jamais parfaitement propre et optimisé.

Côté Laravel, le framework présente pas mal de dépendances. Par exemple, il ne serait pas optimal de l’utiliser pour un simple site vitrine car énormément de packages — pas forcément nécessaires — sont mis en place automatiquement comme le système d’envoi d’e-mail ou de login par exemple. Cela alourdirait le site pour peu de valeur ajoutée.
Symfony offre davantage de flexibilité et peut également s’adapter à de petites applications. Le framework propose un squelette de base que l’on peut enrichir en fonction des besoins, cette flexibilité peut également offrir plus de performances selon les besoins du site.

Nous publions régulièrement des articles sur des sujets de développement produit web et mobile, data et analytics, sécurité, cloud, hyperautomatisation et digital workplace.
Suivez-nous pour être notifié des prochains articles et réaliser votre veille professionnelle.

Retrouvez aussi nos publications et notre actualité via notre newsletter, ainsi que nos différents réseaux sociaux : LinkedIn, Twitter, Youtube, Twitch et Instagram

Vous souhaitez en savoir plus ? Consultez notre site web et nos offres d’emploi.

--

--

CBTW
L’Actualité Tech — Blog CBTW

Nos experts partagent leur vision et leur veille en développement web et mobile, data et analytics, sécurité, cloud, hyperautomation et digital workplace.