Symfony 4 : Le micro Framework devient grand !

Anthony Pilloud
AccessMentorat

--

Sortie le 30 novembre 2017 la version 4.0 apporte son lot de nouveautés et de légèretés.

Commençons par l’installer

C’est simple, il suffit d’avoir composer et de taper la commande suivante :

Tu auras la base de Symfony. Cela ne comprend pas twig, doctrine, le firewall, la console de debug, … On retrouve très peu de dossiers connus. Je t’avoue avoir été un peu perturbé par cette nouvelle version qui chamboule tout.

Pourquoi tout retirer ? Symfony 4.0 se veut plus léger et ressemble énormément à un micro-framework. Analysons ensemble ces changements qui m’ont énervés dans un premier temps mais qui tu le verras sont au final logiques.

Un vent de fraîcheur !

Symfony 4.0 fait peau neuve et se veut plus simple et rapide à prendre en main. Les changements les plus flagrants sont la réduction de la profondeur des dossiers et leurs arborescences :

  • Le dossier app/config devient config/
  • Le dossier web/ devient public/
  • web/app.php et web/app_dev.php fusionnent en public/index.php
  • app/config/config.yml se transforme en .ENV à la racine

Les dossiers de Bundle, les vues, où sont elles ?

Pour les bundles, la réponse est simple, c’est terminé. Symfony 4.0 se veut bundleless. Désormais, les controller sont directement dans le dossier src tout comme les dossiers Entity, Service, Command, …

Néanmoins, les bundles restent toujours possibles. Ils sont conseillés dès lors que ton code sera partagé sur plusieurs applications.

Pour ce qui est des vues, elle se situent dans un dossier templates situé à la racine du projet. Celui-ci n’est pas présent à son initialisation. Nous y reviendrons plus tard.

Les composants de base de Symfony

Pour utiliser twig, doctrine, la console de debug, tu devras les installer via composer. Prenons l’exemple de twig, pour l’installer, il suffit de taper la commande “composer require templates” qui est un alias.

Symfony 4.0 est arrivé avec les recipes. C’est un outil qui permet d’installer des bundles sans devoir créer quoi que ce soit à la main dans la configuration. Il ajoute automatiquement le bundle dans le fichier config/bundles.php. Une vraie joie tu l’avoueras.

Sur le site https://symfony.sh/, tu trouveras toutes les recettes disponibles, qu’elles soient créées par la communauté (contrib) ou créées officiellement par l’équipe de Symfony. Si un bundle ne nécessite pas de créer de fichier de configuration il n’aura pas besoin de recette.

Pourquoi alors templates installe twig ? C’est tout simple. Pour les bundles officiels, Symfony a ajouté des alias afin de les retrouver plus facilement. Avouez que c’est pratique ! Par exemple pour installer tous les composants de doctrine il suffira de taper : “composer require orm” et le tour est joué.

Pour terminer

Symfony 4.0 a été une refonte de l’arborescence du framework. Il apporte une grande nouveauté : Flex, qui permet d’automatiser l’ajout/suppression de bundles. Il arrive avec les recipes. Ce sont des configurations pré-faites pour les bundles. Elles nous évitent ce travail.

Toutes ces nouveautés peuvent faire peur ou paraître énervantes dans un premier temps. Mais une fois testées et appréhendées, on réalise vite que de ne plus avoir à modifier ces fichier de configuration est plaisant.

Enfin, si tu souhaites développer un projet sur le long terme, préférez la version 3.4 qui est la LTS (Long Term Support) de Symfony. Son support s’arrêtera en 2021. Au contraire, si tu souhaites réaliser un projet court ou une API avec les nouvelles fonctionnalités de Symfony, prenez la version 4.

Le petit mot de la fin : être développeur, c’est chaque jour, une remise en question de nos compétences.

Liens utiles :

- Symfony 3.4 : fin de tout support en novembre 2021 : https://symfony.com/roadmap?version=3.4#checker

- Symfony 4.0 : fin de tout support en janvier 2019 : https://symfony.com/roadmap

- Toutes les recipes Symfony flex : https://symfony.sh/

- Pour ajouter ta recette c’est sur ce projet github : https://github.com/symfony/recipes-contrib

--

--