Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Symfony 4 (LTS)
  3. Mise en place d’un projet Symfony
Extrait - Symfony 4 (LTS) Développez des sites web PHP structurés et performants
Extraits du livre
Symfony 4 (LTS) Développez des sites web PHP structurés et performants
1 avis
Revenir à la page d'achat du livre

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 nécessaire de s’équiper ! Un certain nombre d’outils sont nécessaires pour mettre en place le projet et pour développer, leur mise en place 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 4, une version 7.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...

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 7.1 au minimum pour créer un projet Symfony 4.

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=4.4 --full 

Cette commande crée la structure de projet et installe Symfony 4.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.

images/02EI14NEW.png

3. Création via Composer

Pour initialiser un projet Symfony, nous utilisons la commande create-project :

composer create-project symfony/website-skeleton mon_projet 4.4.* 

Cette commande est beaucoup plus verbeuse lors de la création du projet puisqu’elle affiche la liste complète des dépendances Composer installées ; elle affiche également des conseils à la fin de la création du projet. Contrairement à l’installeur Symfony, elle ne crée pas de dépôt Git pour...

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.

  • 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és 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 comporte toutes les ressources publiques. Ces fichiers sont donc accessibles directement depuis le Web, via l’URL http://mon_projet.local/<nom_du_fichier>. Les fichiers de ce répertoire sont souvent statiques (feuilles de style CSS, fichiers de scripts JavaScript, etc.), à une exception près, 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étiers, 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...