• 12 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 02/08/2019

Installez Symfony 4

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Installation du framework Symfony

Normalement, PHP 7.1 doit déjà être installé sur votre environnement de travail, car c'est un prérequis pour ce cours. Si ce n'est pas le cas, je vous invite à consulter ce cours

Ensuite, regardons ensemble comment installer Composer et le framework Symfony.

Installation de Composer

Nous allons installer Composer sur notre ordinateur. Nous pouvons l'installer de la même façon, quel que soit notre système d'exploitation, dès lors que PHP est installé :

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Ensuite, vérifiez rapidement que PHP et Composer sont bien disponibles dans votre invite de commande :

➜ php -v
➜ composer --version

Ces deux commandes doivent retourner un résultat.

Installation du framework Symfony

Depuis la version 4 du framework Symfony, il n'y a plus vraiment de distribution officielle.

La vision de l'équipe qui maintient le projet, c'est de fournir des squelettes applicatifs légers, et de laisser la responsabilité aux développeurs de décider quelles dépendances sont nécessaires dans leurs applications.

Officiellement, il existe deux squelettes applicatifs :

  • skeleton: le squelette minimaliste pour démarrer un projet PHP, il est recommandé pour des applications en ligne de commande, par exemple.

  • website-skeleton : le squelette recommandé pour faire des projets web, que je vous recommande comme base de travail.

Il existe un projet de démonstration appelé Symfony Demonstration. Dans ce projet, vous trouverez quelques contrôleurs, quelques vues intégrées avec Bootstrap, quelques formulaires et un espace d'administration minimaliste déjà mis en place.

L'installation du squelette "Website Skeleton" se fait à l'aide de Composer :

 ➜ composer create-project symfony/website-skeleton mon-super-projet

Démarrage de l'application

Si en production on utilise un serveur web comme Apache ou Nginx, en développement, nous pouvons utiliser le serveur local de PHP. Pour cela, le framework fournit une console dédiée :

 ➜ cd mon-super-projet
 ➜ php bin/console server:run

Si le port n'est pas occupé, l'application sera alors disponible à cette adresse :  http://localhost:8000/ . Pour stopper ce serveur local, utilisez la commande  Ctrl + C  dans votre invite de commande.

Page d'accueil du framework Symfony
Page d'accueil du framework Symfony

Par défaut, puisque vous n'avez aucun contrôleur ni aucune route configurée, le framework vous présente une page avec un lien vers la documentation officielle.

Structure du framework Symfony

Lors de ce cours, nous avons parcouru l'essentiel de l'architecture d'une application Symfony, il peut être important d'avoir une vision d'ensemble du framework et une explication de chaque dossier :

➜ mon-super-projet: tree -L 1
.
├── bin/
├── composer.json
├── composer.lock
├── config/
├── phpunit.xml.dist
├── public/
├── src/
├── symfony.lock
├── templates/
├── tests/
├── translations/
├── var/
└── vendor/

9 directories, 4 files
Le dossier "bin"

Ce dossier contient les exécutables disponibles dans le projet, que ce soit ceux fournis avec le framework (la console Symfony) ou ceux des dépendances (phpunit, simple-phpunit, php-cs-fixer, phpstan).

Le dossier "config"

Ce dossier a fait l'objet d'un chapitre complet de ce cours. Il contient toute la configuration de votre application, que ce soit le framework, les dépendances (Doctrine, Twig, Monolog) ou encore les routes.

Le dossier "public"

Par défaut, il ne contient que le contrôleur frontal de votre application, le fichier dont la responsabilité est de recevoir toutes les requêtes des utilisateurs.

Le dossier "src"

C'est ici que se trouve votre application ! Contrôleurs, formulaires, écouteurs d'événements, modèles et tous vos services doivent se trouver dans ce dossier. C'est également dans ce dossier que se trouve le "moteur" de votre application, le kernel.

➜ src tree -L 1
.
├── Controller
├── Entity
├── Kernel.php
├── Migrations
└── Repository
Le dossier "tests"

Dans ce dossier se trouvent les tests unitaires, d'intégration et d'interfaces.

Par défaut, l'espace de nom du dossier tests est  App\Tests  et celui du dossier src est  App .

Le dossier "templates"

Ce dossier contient les gabarits qui sont utilisés dans votre projet. Par exemple, si dans un contrôleur on fait :

<?php

$this->render('foo.html.twig');

Alors le gabarit sera localisé dans le dossier templates templates/foo.html.twig .

Le dossier "translations"

Si ce sujet n'a pas été abordé dans ce cours, Symfony fournit un composant appelé Translation capable de gérer de nombreux formats de traductions, dont les formats yaml, xliff, po, mo... Ces fichiers seront situés dans ce dossier.

Le dossier "var"

Ce dossier contient trois choses principalement :

  • les fichiers de cache dans le dossier cache ;

  • les fichiers de log dans le dossier log ;

  • et parfois, si le framework est configuré pour gérer les sessions PHP dans le système de fichiers, on trouve le dossier sessions.

Le dossier "vendor"

Ce dossier contient votre chargeur de dépendances (ou "autoloader") et l'ensemble des dépendances de votre projet PHP installées à l'aide de Composer. Une autre façon de découvrir vos dépendances est d'utiliser la commande "composer show".

Introduction à Symfony Flex

D’un point de vue technique, Symfony Flex est juste un plugin Composer. Flex est capable d'écouter les événements Composer, que ce soit l'installation, la mise à jour ou encore la suppression d'une dépendance.

Parmi les tâches qu'il est capable de réaliser :

  • appliquer une configuration par défaut pour un plugin Symfony (autrement appelé "Bundle") ;

  • création de fichiers/dossiers ;

  • mise à jour de fichiers (par exemple le fichier config/bundles.php).

Pour cela, Symfony Flex fonctionne à l'aide d'un système de "recettes" qui sont disponibles dans deux dépôts : un dépôt officiel maintenu par l'équipe Symfony et un dépôt communautaire ouvert à tous les mainteneurs de bundles, librairies et projets.

Imaginons par exemple que vous souhaitiez créer une API REST. Eh bien, avec Flex installé, il vous suffit d'exécuter la commande suivante :

➜ composer require api

Et à l'aide de cette commande seulement, vous aurez une API REST installée et configurée, ainsi que sa documentation au format Swagger. (Si ce type d'application vous intéresse, sachez qu'elle provient d'un projet Symfony appelée API Platform.)

En résumé

Pour installer Symfony 4, vous n'avez besoin que de deux choses : PHP et Composer.

Il n'existe pas qu'une seule version du framework, mais plusieurs "squelettes applicatifs" en fonction de votre projet. Pour un projet web, le squelette recommandé s'appelle "website squeleton".

Pourtant, dans la pratique, de nombreux développeurs préfèrent partir du projet Symfony Demonstration qui est le projet d'apprentissage du framework maintenu par l'équipe Symfony.

Enfin, bien que disponible depuis la version 3.3 du framework, Symfony Flex est utilisée par défaut dans Symfony 4 et c'est la méthode recommandée pour gérer vos applications. Très simplement, c'est une extension de Composer qui va effectuer des actions supplémentaires à l'installation ou à la désinstallation d'une dépendance.

Flex sait quelles actions réaliser grâce à la notion de "recettes". Dans celles-ci, les mainteneurs de projets définissent quelles actions complémentaires (ajouter de la configuration, créer un ou des fichiers...) devront être réalisées.

Exemple de certificat de réussite
Exemple de certificat de réussite