En tant que développeur PHP junior, mon expérience s’est jusqu’à aujourd’hui limitée à Symfony.
Curieux de nature, j’ai décidé de me lancer dans l’aventure Laravel, un framework réputé pour sa simplicité et sa rapidité de développement. Cette expérience m’a permis de découvrir les forces et les faiblesses de Laravel, et de comparer son approche à celle de Symfony. Voici donc mon retour d’expérience complètement subjectif !
J’ai d’abord été séduit par la simplicité et la rapidité de mise en place d’un projet Laravel. Le framework est assez facile à prendre en main et a une courbe d’apprentissage peu pentue. L’outillage intégré, combiné à une configuration quasi-"magique", permet de démarrer rapidement sans se perdre dans les méandres de la configuration.
À ce titre, Symfony propose une expérience de démarrage similaire, avec une configuration initiale simple et de nombreux bundles pour étendre les fonctionnalités. La principale différence ici est à mon sens la personnalisation de l’environnement créé initialement. Symfony crée un projet avec plus ou moins de packages en fonction des options passées à la commande symfony new. Hormis celà, la base reste toujours à peu près la même.
Laravel lui, nous pose plusieurs questions. Il demande si on veut supporter le dark-mode; initialiser un repository Git; utiliser un starter kit; avec quelles options (Alpine ? Vue ? API ?); quelle base de données et quel framework de test on souhaite utiliser.
Création d’un projet avec auth complet, tests et front-end avec Alpine
Au-delà de la configuration initiale, Laravel diffère également par sa syntaxe et sa structure de projet. Les migrations avec Eloquent, par exemple, portent des noms explicites qui reflètent leur fonction. Dans Symfony, lorsqu’on utilise Doctrine, elles sont plutôt identifiées avec un timestamp uniquement (bien qu’il soit techniquement possible de les nommer).
De même, la définition des modèles se fait directement dans les fichiers de migration, plutôt que de générer ces migrations à partir des entités comme c’est le cas avec Symfony. Si cette approche peut offrir une grande flexibilité, j’ai surtout trouvé cela déroutant au début. Avec...
[Courte citation de 8% de l'article original]