Rentrons rapidement dans le vif du sujet et commençons d’abord par les prérequis pour installer et utiliser Symfony 6
Exigences techniques
Avant de créer votre première application Symfony, vous devez :
Installer PHP 8.0.2 ou supérieur et ces extensions PHP (qui sont installées et activées par défaut dans la plupart des installations de PHP 8) : Ctype, iconv, PCRE, Session, SimpleXML, et Tokenizer ;
Notez que toutes les nouvelles versions de PHP seront supportées pendant la durée de vie de chaque version de Symfony (y compris les nouvelles versions majeures). Par exemple, PHP 8.1 est supporté.
Installez Composer, qui est utilisé pour installer les paquets PHP.
En option, vous pouvez également installer Symfony CLI. Cela crée un binaire appelé symfony qui fournit tous les outils dont vous avez besoin pour développer et exécuter votre application Symfony localement.
Le binaire symfony fournit également un outil pour vérifier si votre ordinateur répond à toutes les exigences. Ouvrez votre terminal de console et exécutez cette commande :
symfony check:requirements
Création d’applications Symfony
Ouvrez votre terminal de console et exécutez l’une de ces commandes pour créer une nouvelle application Symfony :
symfony new nomduprojet --full
symfony new nomduprojet
La seule différence entre ces deux commandes est le nombre de paquets installés par défaut. L’option –full installe tous les paquets dont vous avez généralement besoin pour créer des applications Web, la taille de l’installation sera donc plus importante.
Si vous n’utilisez pas le binaire Symfony, exécutez ces commandes pour créer la nouvelle application Symfony à l’aide de Composer :
composer create-project symfony/website-skeleton my_project_name
composer create-project symfony/skeleton my_project_name
Peu importe la commande que vous exécutez pour créer l’application Symfony. Elles vont toutes créer un nouveau répertoire mon_nom_de_projet/, y télécharger certaines dépendances et même générer les répertoires et fichiers de base dont vous aurez besoin pour commencer. En d’autres termes, votre nouvelle application est prête !
Configuration d’un projet Symfony existant
En plus de créer de nouveaux projets Symfony, vous travaillerez également sur des projets déjà créés par d’autres développeurs. Dans ce cas, il vous suffit de récupérer le code du projet et d’installer les dépendances avec Composer. En supposant que votre équipe utilise Git, configurez votre projet avec les commandes suivantes :
cd projets/
git clone ...
cd mon-projet/
composer installer
Vous aurez probablement aussi besoin de personnaliser votre fichier .env et d’effectuer quelques autres tâches spécifiques au projet (par exemple, la création d’une base de données). Lorsque vous travaillez sur une application Symfony existante pour la première fois, il peut être utile d’exécuter cette commande qui affiche des informations sur le projet :
php bin/console about
Exécution des applications Symfony
En production, vous devez installer un serveur web comme Nginx ou Apache et le configurer pour exécuter Symfony. Cette méthode peut également être utilisée si vous n’utilisez pas le serveur web local de Symfony pour le développement.
Cependant, pour le développement local, la façon la plus pratique d’exécuter Symfony est d’utiliser le serveur web local fourni par le binaire Symfony. Ce serveur local fournit entre autres le support pour HTTP/2, les requêtes concurrentes, TLS/SSL et la génération automatique de certificats de sécurité.
Ouvrez votre terminal de console, allez dans votre nouveau répertoire de projet et démarrez le serveur web local comme suit :
cd my-project/
symfony server:start
Ouvrez votre navigateur et allez sur http://localhost:8000/. Si tout fonctionne, vous verrez une page de bienvenue. Plus tard, lorsque vous aurez fini de travailler, arrêtez le serveur en appuyant sur Ctrl+C dans votre terminal.
Installation de paquets
Une pratique courante lors du développement d’applications Symfony est d’installer des paquets (Symfony les appelle bundles) qui fournissent des fonctionnalités prêtes à l’emploi. Les paquets nécessitent généralement une certaine configuration avant de les utiliser (édition d’un fichier pour activer le bundle, création d’un fichier pour ajouter une configuration initiale, etc.)
La plupart du temps, cette configuration peut être automatisée et c’est pourquoi Symfony inclut Symfony Flex, un outil pour simplifier l’installation/la suppression des packages dans les applications Symfony. Techniquement parlant, Symfony Flex est un plugin Composer qui est installé par défaut lors de la création d’une nouvelle application Symfony et qui automatise les tâches les plus courantes des applications Symfony.
Symfony Flex modifie le comportement des commandes require, update et remove de Composer pour fournir des fonctionnalités avancées. Prenons l’exemple suivant :
cd my-project/
composer require logger
Packs Symfony
Parfois, une seule fonctionnalité nécessite l’installation de plusieurs paquets et bundles. Au lieu de les installer individuellement, Symfony fournit des packs, qui sont des métapackages Composer qui incluent plusieurs dépendances.
Par exemple, pour ajouter des fonctionnalités de débogage dans votre application, vous pouvez exécuter la commande composer require –dev debug. Cela installe le pack symfony/debug, qui à son tour installe plusieurs paquets comme symfony/debug-bundle, symfony/monolog-bundle, symfony/var-dumper, etc.
Vous ne verrez pas la dépendance symfony/debug-pack dans votre composer.json, car Flex décompresse automatiquement le pack. Cela signifie qu’il n’ajoute que les paquets réels en tant que dépendances (par exemple, vous verrez un nouveau symfony/var-dumper dans require-dev). Bien que cela ne soit pas recommandé, vous pouvez utiliser le compositeur
require –no-unpack … pour désactiver le déballage.
Vérification des vulnérabilités de sécurité
Le binaire symfony créé lors de l’installation de Symfony CLI fournit une commande permettant de vérifier si les dépendances de votre projet contiennent une vulnérabilité de sécurité connue :
symfony check:security
Une bonne pratique de sécurité consiste à exécuter cette commande régulièrement afin de pouvoir mettre à jour ou remplacer les dépendances compromises dès que possible. Le contrôle de sécurité est effectué localement en récupérant la base de données publique des avis de sécurité de PHP, ainsi votre fichier composer.lock n’est pas envoyé sur le réseau.
Note : La commande check:security se termine par un code de sortie non nul si l’une de vos dépendances est affectée par une vulnérabilité de sécurité connue. Vous pouvez ainsi l’ajouter au processus de construction de votre projet et à vos flux d’intégration continue pour les faire échouer en cas de vulnérabilité.
Versions LTS de Symfony
Selon le processus de publication de Symfony, les versions « long-term support » (ou LTS pour faire court) sont publiées tous les deux ans. Consultez les versions de Symfony pour savoir quelle est la dernière version LTS.
Par défaut, la commande qui crée les nouvelles applications Symfony utilise la dernière version stable. Si vous souhaitez utiliser une version LTS, ajoutez l’option –version :
symfony new my_project_name --version=lts
symfony new my_project_name --version=next
symfony new my_project_name --version=5.4
Les raccourcis lts et next ne sont disponibles que lorsque vous utilisez Symfony pour créer de nouveaux projets. Si vous utilisez Composer, vous devez indiquer la version exacte :
composer create-project symfony/skeleton:"^5.4" my_project_name
L’application Symfony Demo
L’application de démonstration Symfony est une application entièrement fonctionnelle qui montre la manière recommandée de développer des applications Symfony. C’est un excellent outil d’apprentissage pour les nouveaux venus dans Symfony et son code contient des tonnes de commentaires et de notes utiles.
Exécutez cette commande pour créer un nouveau projet basé sur l’application Symfony Demo :
symfony new nom_du_projet --demo