
Introduction Ă Symfony
Symfony est Ă la fois un ensemble de composants PHP open source et un framework pour applications web.
Ici, nous lâutiliserons comme un framework qui va nous aider Ă mieux structurer le code, fluidifier le travail en Ă©quipe, Ă©viter de rĂ©inventer la roue, produire du code de qualitĂ©, permettre une plus grande rapiditĂ© de production.
Nous utiliserons Ă©galement Composer, un gestionnaire de dĂ©pendances : il simplifie lâinstallation des modules, les mises Ă jour, la gestion de versions, la crĂ©ation de projets basĂ©s sur une structure dĂ©finie ; tout ça en ligne de commande.
Mise en place
- télécharger PHP
(on vérifie avec
php --version)
- télécharger le gestionnaire de dépendances Composer
(pas besoin du dev mode, juste un outil pour nous)
(on vérifie avec
composer --version)
- tĂ©lĂ©charger Symfony CLI (binaries amd64) : on dĂ©zippe et on ajoute lâexĂ©cutable (.exe) Ă la racine du dossier PHP
(on vérifie avec
symfony version)
Hello World
Projet GitHub : https://github.com/LSarribouette/hello-symfony
Dans le terminal,
cd ./le/chemin/du/bondossier
symfony new hello-world(raccourci pour dire create-project)
On lâouvre dans un IDE (ici, PhpStorm) :
- lancer le projet via le terminal dans PhpStorm :
symfony serveet cliquer sur lâadresse en local
ctrl+cousymfony server:stoparrĂȘte le serveur en cours
- on installe et active les plugins recommandés : Symfony Support et PHP Annotations
- on installe des packages :
- avec composer, un package Ă la fois avec
composer require nomdupackage
- en utilisant des recettes flex (je rĂ©cupĂšre un package, qui a besoin dâun autre package, donc ça gĂšre la succession des installations des packages selon leurs dĂ©pendances)
- en utilisant des bundles = regroupement de packages
- avec composer, un package Ă la fois avec
BP : quand on dev, on laisse le serveur lancé tout le long, ce qui met à jour le projet à chaque sauvegarde (comme le Live Server).
RĂ©pertoires dâun projet
âą bin : on y fait rien, tous les exe
âą config : configuration de Symfony et fichiers YAML
⹠migrations : scripts de mise à jour de base de données
âą public : accessible par les navigateurs ; on y range les css, les media, tout ce qui a besoin dâĂȘtre accessible par diffĂ©rentes pages
âą src : câest lĂ quâon Ă©crit le code PHP (entitĂ©s, contrĂŽleurs, formulairesâŠ)
âą templates : fichiers de vue Twig
âą tests : tests unitaires et fonctionnels
âą translations : fichiers de traduction
âą var : caches et logs
⹠vendor : dépendances du projet (équivalent du build path en Java), géré par Composer
âą index.php : câest forcĂ©ment lĂ oĂč on arrive puis il redirige
⹠.gitignore : un dépÎt git est créé à la création du projet
âą .env : donnĂ©es dâenvironnement (on ajoute souvent un .env.local)
+ pour mettre une app symfony en production : on modifie APP_ENV=dev en APP_ENV=prod
âą composer.json : la liste des paquets quâon utilise dans lâapplication
+ on a une liste spéciale de paquets pour la phase de développement, qui ne seront pas activés en mise en production (on précise composer require nomdupackage --dev)