📘

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.

⚙
Outils : - https://symfony.com/ - Les alternatives PHP sont : Laravel, Slim (version light), (Zend Framework, Doelgniter, CakePHP, Phalcon, Yii). - Les équivalents sont Spring en Java ou Django en Python, par exemple. - sonarqube : outil qui analyse la qualité de code

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.

⚙
Outils : - https://getcomposer.org/ - Les équivalents sont Maven pour Java ou NPM pour Angular, par exemple.
⚠
On fait quasiment tout en ligne de commande pour ce cours.

Mise en place

â„č
Quand on installe Symfony, on choisit entre une version minimale, skeleton, Ă  laquelle on ajoute des packages au fur et Ă  mesure et une version avec l’intĂ©gralitĂ© des packages, website-skeleton (non recommandĂ©).

Hello World


Projet GitHub : https://github.com/LSarribouette/hello-symfony

Dans le terminal,

On l’ouvre dans un IDE (ici, PhpStorm) :

â„č
Si erreur de version, on peut forcer la version : Ă  la racine du projet, new file ‘.php-version’ dans lequel on Ă©crit juste la version voulue (ex : ’8.2.1’).

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)

â„č
Si on appuie sur le point du clavier numĂ©rique sur un repository GitHub, un IDE s’ouvre et cela facilite la navigation entre les fichiers.