Mise en place d’un projet Symfony
L’outillage nécessaire
1. Introduction
Avant de se lancer dans la création d’un projet Symfony, il est important de s’équiper ! Un certain nombre d’outils sont nécessaires pour mettre en place le projet et pour développer, leur installation correcte est détaillée ci-après. Certains de ces outils sont indispensables pour tout développeur Symfony, d’autres sont optionnels ou possèdent des alternatives. Il est essentiel de bien comprendre leur rôle et de les installer à bon escient avant d’aller plus loin dans la construction de son projet.
2. Symfony : Un projet PHP
Le premier ensemble d’outils à installer permet de poser les fondations. En effet, un projet Symfony est avant tout un projet PHP avec tout ce que cela implique : serveur web disposant de PHP, base de données…
Il est donc nécessaire de prévoir l’installation d’un tel environnement, même si, comme cela sera évoqué plus loin, l’installeur Symfony peut se substituer au serveur web. L’installation d’un vrai serveur web disposant de PHP sera à un moment ou un autre indispensable, notamment pour la mise en place de tests logiciels, ou encore pour certaines fonctionnalités de sécurité.
Pour disposer d’une installation fonctionnelle de ce type d’environnement, deux solutions s’offrent à vous :
-
Installation séparée d’un serveur web, de PHP et d’une base de données relationnelle.
-
Installation d’un package prêt à l’emploi fournissant ces produits.
La première approche nécessite bien entendu une connaissance poussée du système d’exploitation choisi, du réseau, et du fonctionnement de ces produits. La seconde, elle, est beaucoup plus abordable techniquement, et surtout plus rapide, notamment en environnement Windows.
Pour travailler avec Symfony 6, une version 8.1 ou supérieure de PHP est requise.
a. Préconisation d’installation
Dans cet ouvrage, nous allons principalement utiliser Apache HTTP Server en tant que serveur web et MySQL en tant que serveur de base de données, car ce sont les produits les plus communément associés au langage PHP. Nous verrons cependant au cours...
Création d’un projet Symfony
1. Prérequis
Comme évoqué précédemment, vous devez disposer d’une installation de PHP dans sa version 8.1 au minimum pour créer un projet Symfony 6.
Nous allons présenter plusieurs techniques de création de projet utilisant l’installeur Symfony ou bien l’installation via Composer. Les deux solutions sont pertinentes pour créer un projet, mais une installation par l’installeur n’affranchit pas d’avoir installé Composer pour d’autres tâches ultérieures.
2. Création via l’installeur Symfony
L’installeur Symfony s’utilise en ligne de commande dans un terminal sous Linux ou macOS et dans une invite de commandes sous Windows. Avant de créer un nouveau projet, vous pouvez demander la vérification des prérequis en exécutant la commande :
symfony check:requirements
Le résultat affiché à l’écran peut vous indiquer des erreurs dans la configuration de PHP qu’il faudra corriger avant d’aller plus loin. En plus des erreurs, il peut également y avoir des préconisations d’optimisations faites par l’outil, mais tant que le résultat est « OK », vous pouvez continuer.
La création du projet se fera ensuite grâce à la commande :
symfony new mon_projet --version="6.4.*" --webapp
Plus généralement, la commande :
symfony new mon_projet --version=lts --webapp
permet de créer un projet sur la base de la dernière version LTS en date.
Cette commande crée la structure de projet et installe Symfony 5.4 dans le dossier mon_projet. Vous remarquerez qu’en fait, la commande symfony utilise Composer de manière sous-jacente. Vous noterez également qu’un dépôt Git a été initialisé pour ce projet, ce qui vous permet de gérer le code source et ses versions.
C’est la seule différence entre l’usage des deux techniques d’installation présentées ici : l’installeur Symfony nécessite une installation fonctionnelle de Git sur le poste de développement.
3. Création via Composer
Pour initialiser un projet Symfony, nous utilisons la commande...
Structure de l’application
1. Arborescence du projet
Une application Symfony contient différents répertoires et chacun d’eux a un rôle précis.
-
assets : ce dossier contient les ressources publiques de l’application telles que les feuilles de style CSS et fichiers JavaScript.
-
bin : ce dossier contient les exécutables de votre projet ou de ses dépendances. Il contient notamment la console Symfony.
-
config : ce répertoire contient majoritairement les fichiers de configuration de l’application.
-
migrations : lorsque vous concevez les différentes classes d’objets qui seront persistées en base de données, les outils Symfony (la console !) généreront des scripts PHP dans ce répertoire, permettant ainsi de mettre à jour le schéma de base de données.
-
public : ce dossier contient le contrôleur frontal (cf. chapitre Architecture du framework - Architecture de Symfony), c’est-à-dire le fichier index.php.
-
src : ce répertoire contient vos classes métier, contrôleurs, etc. Pour faire simple, c’est le cœur de votre projet, c’est dans ce dossier que se déroule la quasi-totalité du développement.
-
templates : l’emplacement de stockage des templates et des gabarits Twig. Les templates constituent les écrans (ou encore les vues) de votre application ; ils mélangent code HTML et langage Twig pour le rendu dynamique des écrans.
-
tests : les différents tests logiciels, unitaires, d’intégration ou fonctionnels seront stockés dans ce répertoire afin de pouvoir être exécutés par PHPUnit.
-
translations : si vous souhaitez internationaliser votre application, vous devez fournir des fichiers de langues (ou fichiers de traductions) pour chaque langue supportée par celle-ci. Ces fichiers devront résider dans ce répertoire.
-
var : ce dossier contient le cache et les logs (historiques des événements) de votre application.
-
vendor : ce répertoire a été généré par Composer et il contient tous les paquets (librairies ou bundles) dont votre projet dépend. Vous pouvez ignorer ce dossier, mais vous ne devez en aucun cas le versionner car Composer...