Archives Wild Code School
Symfony

02 - Symfony : Installation et Initialisation d'un projet Symfony

Quête 3 sur 35 · 1 image archivée

Objectifs

  • ✅ Créer un projet Symfony
  • ✅ Utiliser la console de Symfony
  • ✅ Versionner ton projet avec Git

Pré-requis

​

  1. 1

    Terminer les quêtes suivantes

    Quêtes liées
  2. 2

    Savoir utiliser le gestionnaire de dépendances Composer

    Quêtes liées
title
Introduction

Ça y est, après la phase de conception et de découverte de Symfony, tu vas enfin pouvoir commencer à entrer dans le code !

Pour commencer simplement, tu vas créer un projet vierge, le configurer et le versionner. Évidemment, c’est ce même projet qu’il faudra réutiliser à chaque nouvelle quête Symfony pour, qu’à la fin de ta formation, ton Wild Series soit finalisé !

User stories 📋

en tant que visiteur, je souhaite accéder à la page d'accueil

en tant que visiteur, je souhaite récupérer les données d'une série

en tant que visiteur, je souhaite récupérer la liste des séries

en tant que contributeur, je souhaite ajouter une série

In progress 🤸

Doing 🏗️

initialisation du projet Symfony

Done ✅

Sommaire

Installation et initialisation d'un projet Symfony

Tout d'abord, tu vas commencer par créer un nouveau projet Symfony

Avant toute chose, assure-toi que tu disposes bien de PHP 8.2 minimum, ainsi que de Composer, auquel cas tu trouveras un lien dans les ressources qui s'y réfère ou n'hésite pas à regarder tes anciennes quêtes PHP.

Si tout est bon, place-toi à l'endroit où tu souhaites réaliser cette quête dans ton arborescence de fichiers, comme par exemple :

bash
cd ~/workspace/quetes/symfony

Evidemment, il faut que ces dossiers existent !

Installation de Symfony CLI

Si c’est la toute première fois que tu initialises un projet Symfony sur ce PC, il faut que tu récupères l’outil d’installation de Symfony et l’installes globalement. Cette opération te permettra ensuite d’utiliser la commande symfony dans ton terminal.

Tu trouveras différents onglets en fonction de ton OS (Linux, MacOS, Windows) en suivant le lien ci-dessous.

↗
Installation de Symfony CLI - Documentation officielle

Download Symfony Framework and Components.

symfony.com

Enfin, vérifie que tu as correctement installé le client symfony en exécutant la commande suivante dans ton terminal :

bash
symfony -v

Tu devrais avoir une sortie proche de cela dans ton terminal (le numéro de version et le nom des commandes peuvent être différents car Symfony CLI est activement développé et évolue rapidement)

bash
Symfony CLI version 5.8.16 (c) 2021-2024 Fabien Potencier (2024-04-23T14:40:41Z - stable)
Symfony CLI helps developers manage projects, from local code to remote infrastructure

These are common commands used in various situations:

Work on a project locally

  new                                                            Create a new Symfony project
  server:start                                                   Run a local web server
  server:stop                                                    Stop the local web server
  security:check                                                 Check security issues in project dependencies
  composer                                                       Runs Composer without memory limit
  console                                                        Runs the Symfony Console (bin/console) for current project
  php, pecl, pear, php-fpm, php-cgi, php-config, phpdbg, phpize  Runs the named binary using the configured PHP version

Manage a project on Cloud

  init                Initialize a new project using templates
  cloud:domains       Get a list of all domains
  cloud:branch        Branch an environment
  cloud:environments  Get a list of environments
  cloud:push          Push code to an environment
  cloud:ssh           SSH to the current environment
  cloud:projects      Get a list of all active projects
  cloud:tunnel:open   Open SSH tunnels to an app's relationships
  cloud:user:add      Add a user to the project
  cloud:variables     List variables

Show all commands with symfony help,
Get help for a specific command with symfony help COMMAND.
Important

Si la commande ne fonctionne pas, ferme ton terminal et rouvre-le puis lance la commande à nouveau. Si cela ne fonctionne toujours pas, reprends l’installation de l’outil d’installation de Symfony.

✨ Création d'un nouveau projet

Pour créer un nouveau projet, tu peux maintenant lancer la commande

bash
symfony new --webapp wild-series --version=lts

Patiente quelques instants… Symfony CLI télécharge les librairies et configure un nouveau projet, qui aura ici pour nom "wild-series" et qui utilisera la dernière version stable du framework.

Info

Remarques : L'option --webapp installe et configure un certain nombre de dépendances utiles (Twig, gestion des formulaires, de la base de données, des assets...) pour débuter un site web rapidement. Tu auras besoin de cette option la plupart du temps. Aussi, l'option --version=lts permet de créer une application qui utilise la version Symfony LTS (Long Term Support). Tu peux omettre cette option ce qui installera la dernière version stable du framework mais dont certaines fonctionnalités sont susceptibles de changer. Consulte la roadmap de Symfony pour plus d'informations.

Attention

Note : Si tu souhaites créer un projet plus basique (microservice, API...) qui ne nécessiterait pas toutes ces dépendances, tu peux omettre l'option --webapp. Tu auras alors un projet quasiment vide avec le minimum vital pour Symfony, et tu devras installer manuellement les dépendances additionnelles.

Une fois ton projet initialisé, il faut lancer ton serveur HTTP pour pouvoir lire tes fichiers PHP / Symfony. Comme expliqué par Symfony, tu peux :

  • soit lancer le serveur PHP web local depuis le répertoire du projet Symfony via la commande :

    sh
    php -S 127.0.0.1:8000 -t public/
    
  • soit utiliser le serveur de Symfony qui est préconisé pour le développement et que tu vas découvrir juste après.

Attention

En production, tu devras utiliser Apache ou Nginx et non plus lancer un serveur "à la main", comme ci-dessus.

↗
Documentation officielle Symfony

Installation et Initialisation d'un projet Symfony.

symfony.com

🌐 Lancer le serveur web Symfony

Le framework Symfony vient avec tout un tas de commandes qui vont te simplifier la vie (tu auras le temps de les découvrir dans les quêtes suivantes). En utilisant ton terminal de commande comme tu le faisais jusqu'à présent pour jouer avec Git, PHP ou composer, tu vas pouvoir utiliser des directives propres à Symfony.

Par exemple, pour lancer le serveur durant la phase de développement, exécute la commande ci-dessous à la racine de ton projet (après t'y être déplacé cd wild-series 😉) :

sh
symfony server:start 
Info

Par défaut, tu risques d'avoir un message d'erreur du type [WARNING] run "symfony.exe server:ca:install" first if you want to run the web server with TLS support, or use "--no- tls" to avoid this warning. Tu peux spécifier l'option --no-tls qui permet de désactiver le mode HTTPS ou installer un certificat comme recommandé dans ton terminal.

Il existe une option qui lance ton serveur en tâche de fond: -d. Cela te permet de réutiliser ton terminal directement après avoir lancé ton serveur:

sh
symfony server:start -d

Pour ouvrir l'URL du serveur en cours dans ton navigateur (par ex localhost:8000), tu peux utiliser la commande

bash
symfony open:local

Afin de pouvoir stopper ton serveur fonctionnant en mode détaché, une autre commande est à ta disposition:

sh
symfony server:stop

Voici la page que tu devrais avoir (à un numéro de version près) :

↗
Documentation du serveur local de Symfony
symfony.com

📂 Structure d'un projet Symfony

Sans que tu t'en rendes compte, Symfony a fait pas mal de choses. Dans le dossier wild-series, tu trouveras un ensemble de fichiers et de dossiers qui constitue l'architecture de ton projet Symfony. On y trouve tous les outils nécessaires pour construire une plateforme sur des bases saines et solides. Jette un œil à la ressource ci-dessous pour connaître le rôle de ces dossiers.

↗
Structure des fichiers Symfony

L'architecture du framework expliquée par Symfony lui même !

symfony.com

🗄️ Versionner son projet avec Git

Il ne manque pas une étape dans notre installation ?

Eh si, il nous reste à versionner notre projet par le biais de Git !

Sache que lorsque tu installes un projet Symfony, celui-ci est déjà pensé pour Git. En effet, tu trouveras dans la plupart des dossiers des fichiers .gitignore qui excluront les fichiers à ne pas versionner. Tu peux éventuellement jeter un œil sur le .gitignore principal, à la racine de ton projet.

Symfony a déjà effectué un git init pour toi et ton projet contient un fichier de configuration .git/config par défaut. Il te faut alors simplement configurer ton dépôt distant (remote origin).

bash
git remote add origin git@github.com:User/YourRepoName.git

Bien évidemment, remplace l'URL par celle de ton repository créé au préalable sur Github.

↗
Git - Configuration

Ajouter un dépôt distant.

docs.github.com

Tu peux ensuite effectuer ton premier commit :

sh
git status
git branch -M main
git push -u origin main

Le git status ici te montre juste quels sont les fichiers qu'il faut absolument versionner.

Attention

Attention - si tu utilises un IDE - veille à ne pas versionner les fichiers de configuration de ce dernier. Par exemple, si tu utilises PhpStorm n'oublie pas d'ajouter .idea au fichier .gitignore qui se situe à la racine de ton projet. Et si tu es sous MacOS, ajoute aussi le fichier .DS_Store qui est très souvent généré automatiquement par le système.

Installer un projet Symfony existant

Attention

Attention, ce qui suit n'est valable que dans le cas où tu récupères un projet Symfony déjà initialisé. Ce n'est donc pas valable dans le cadre de TON projet Wild Series. En revanche, quand tu corrigeras le travail de tes pairs, tu devras récupérer leur dépôt. Il en sera de même lorsque tu commenceras le projet en groupe ou que tu rejoindras une équipe déjà en place dans ta future entreprise.

Quand tu récupères un projet existant, c'est le plus souvent en utilisant git clone. Le dossier récupéré contient déjà toute l'infrastructure de dossiers de Symfony. Mais attention, il va te manquer un certain nombre de fichiers et de dossiers, notamment ceux ignorés dans le .gitignore.

Par exemple, le dossier vendor/ (généré par Composer), est ignoré. C'est sûrement le plus gros dossier du projet, car il contient les bibliothèques utilisées par l'application.

Pour récupérer ce dossier, tu devras donc lancer la commande suivante depuis la racine du projet :

sh
cd wild-series/
composer install

Tu peux ensuite reprendre les étapes du dessus. Par la suite, tu auras éventuellement à personnaliser le fichier .env (en le dupliquant en .env.local) puisqu'il contient des données sensibles qui te sont propres (comme tes identifiants de base de données).

↗
Installer un projet existant Symfony

Récupérer un projet Symfony.

symfony.com

💪 Challenge

Initialisation du projet Wild Series 🍿

Le défi est simple :

Crée un nouveau projet Symfony Web pour ton Wild Series et push ton projet sur Github. Copie l’URL de ce dépôt git dans le champ solution.

Critères de validation

  • Le dépôt contient les dossiers suivants  : bin/, config/, public/, src/, templates/, tests/, translations/ et quelques autres fichiers (.gitignore, composer.json, etc.).

  • Le dépôt ne contient pas de répertoires ou fichiers listés dans .gitignore, comme .idea/, .vscode/, .DS_Store et vendor/.

Info

Attention : Ton repository Github doit être public pour que les correcteurs puissent y accéder.

Ressources partagées sur cette quête