Installation et Configuration du Framework Symfony

Vérifiez que PHP et Composer sont bien installés :

Si nécessaire, téléchargez et installez :

php -v
composer -v

Installez Symfony CLI (optionnel) :

curl -sS https://get.symfony.com/cli/installer | bash
mv ~/.symfony*/bin/symfony /usr/local/bin/symfony

 

Symfony CLI

Symfony CLI (Command Line Interface) est un outil en ligne de commande qui constitue un premier moyen de créer un projet basé sur le framework. L’utilisation de cet outil n’est pas obligatoire pour développer avec Symfony, mais elle apporte quelques petites facilités non négligeables, comme par exemple un serveur web embarqué pour exécuter les applications, ou bien encore un utilitaire de vérification des prérequis avant de démarrer un projet.

Symfony CLI est téléchargeable à l’adresse https://symfony.com/download.

L’installation ne présente pas de difficulté particulière si vous suivez les instructions indiquées en fonction du système d’exploitation cible.

Une fois l’installation terminée, vous pouvez vérifier le bon fonctionnement de l’outil en tapant la commande symfony dans un terminal ou une invite de commandes.

Exigences

Avant de créer votre première application Symfony, vous devez :

Installez également le Symfony CLI. C’est optionnel, mais cela fournit un binaire utile appelé

symfony

qui regroupe tous les outils nécessaires pour développer et exécuter votre application Symfony localement.

Le binaire

symfony

fournit aussi un outil pour vérifier si votre ordinateur répond à toutes les exigences. Ouvrez votre terminal et exécutez cette commande :

symfony check:requirements

Le Symfony CLI est open source, et vous pouvez y contribuer via le dépôt GitHub symfony-cli/symfony-cli.

Créer des Applications Symfony

Ouvrez votre terminal et exécutez l’une de ces commandes pour créer une nouvelle application Symfony :

symfony new my_project_directory --version="7.2.x" --webapp
symfony new my_project_directory --version="7.2.x"

La seule différence entre ces deux commandes est le nombre de packages installés par défaut. L’option

--webapp

installe des packages supplémentaires nécessaires pour développer une application web.

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/skeleton:"7.2.x" my_project_directory
cd my_project_directory
composer require webapp
composer create-project symfony/skeleton:"7.2.x" my_project_directory

Quelle que soit la commande utilisée, elles créeront toutes un nouveau répertoire

my_project_directory/

, téléchargeront des dépendances et généreront les répertoires et fichiers de base nécessaires. En d’autres termes, votre nouvelle application est prête !

Les répertoires de cache et de logs du projet (par défaut,

/var/cache/

et

/var/log/

) doivent être accessibles en écriture par le serveur web. Si vous rencontrez un problème, consultez la documentation sur la configuration des permissions pour les applications Symfony.

Configurer un Projet Symfony Existant

En plus de créer de nouveaux projets Symfony, vous travaillerez également sur des projets existants. Dans ce cas, vous devez uniquement récupérer le code du projet et installer les dépendances avec Composer. Supposons que votre équipe utilise Git, configurez votre projet avec les commandes suivantes :

cd projects/
git clone ...
cd my-project/
composer install

Vous devrez probablement aussi personnaliser votre fichier .env et effectuer d’autres tâches spécifiques au projet (par exemple, créer une base de données). Lors de la première utilisation d’une application Symfony existante, il peut être utile d’exécuter cette commande qui affiche des informations sur le projet :

php bin/console about

Exécution d’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, le moyen le plus pratique d’exécuter Symfony est d’utiliser le serveur web local fourni par le binaire

symfony

. Ce serveur local offre, entre autres, la prise en charge de HTTP/2, des requêtes concurrentes, TLS/SSL et la génération automatique de certificats de sécurité.

Ouvrez votre terminal, accédez à votre répertoire de projet et démarrez le serveur web local comme suit :

cd my-project/
symfony server:start

Ouvrez votre navigateur et accédez à http://localhost:8000/. Si tout fonctionne, vous verrez une page de bienvenue. Plus tard, lorsque vous aurez terminé de travailler, arrêtez le serveur en appuyant sur Ctrl+C dans votre terminal.

Le serveur web fonctionne avec toute application PHP, pas seulement avec les projets Symfony, ce qui en fait un outil de développement générique très utile.

La structure typique des dossiers :

bin/ : outils comme console.
config/ : fichiers de configuration.
public/ : fichiers accessibles via le navigateur (ex. index.php).
src/ : contrôleurs, entités, services.
templates/ : fichiers de vues Twig.
var/ : fichiers de cache et logs.
vendor/ : dépendances gérées par Composer.

Intégration Symfony avec Docker

Si vous souhaitez utiliser Docker avec Symfony, consultez Utiliser Docker avec Symfony.

Installation des Packages

Une pratique courante lors du développement d’applications Symfony est d’installer des packages (appelés bundles) qui offrent des fonctionnalités prêtes à l’emploi. Ces packages nécessitent souvent une configuration avant de les utiliser (modifier un fichier pour activer le bundle, créer 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 qui simplifie l’installation et la suppression des packages dans les applications Symfony. Techniquement parlant, Symfony Flex est un plugin Composer installé par défaut lors de la création d’une nouvelle application Symfony, qui automatise les tâches courantes des applications Symfony.

Vous pouvez également ajouter Symfony Flex à un projet existant.

Symfony Flex modifie le comportement des commandes Composer

require

,

update

et

remove

pour fournir des fonctionnalités avancées. Considérez l’exemple suivant :

cd my-project/
composer require logger

Si vous exécutez cette commande dans une application Symfony qui n’utilise pas Flex, vous verrez une erreur Composer indiquant que

logger

n’est pas un nom de package valide. Cependant, si l’application utilise Symfony Flex, cette commande installe et active tous les packages nécessaires pour utiliser le logger officiel de Symfony.

Cela est possible car de nombreux packages/bundles Symfony définissent des « recettes », qui sont un ensemble d’instructions automatisées pour installer et activer des packages dans les applications Symfony. Flex conserve une trace des recettes qu’il a installées dans un fichier

symfony.lock

, qui doit être ajouté à votre dépôt de code.

Les recettes Symfony Flex sont fournies par la communauté et stockées dans deux dépôts publics :

  • Dépôt principal de recettes : une liste de recettes sélectionnées pour des packages de haute qualité et maintenus. Symfony Flex recherche uniquement dans ce dépôt par défaut.
  • Dépôt de recettes Contrib : contient toutes les recettes créées par la communauté. Toutes fonctionnent, mais les packages associés peuvent ne pas être maintenus. Symfony Flex demandera votre permission avant d’installer l’une de ces recettes.

Consultez la documentation des recettes Symfony pour tout apprendre sur la création de recettes pour vos propres packages.

Packs Symfony

Parfois, une seule fonctionnalité nécessite l’installation de plusieurs packages et bundles. Au lieu de les installer individuellement, Symfony propose des packs, qui sont des méta-packages Composer incluant plusieurs dépendances.

Par exemple, pour ajouter des fonctionnalités de débogage à votre application, vous pouvez exécuter la commande

composer require --dev debug

. Cela installe le

symfony/debug-pack

, qui à son tour installe plusieurs packages tels que

symfony/debug-bundle

,

symfony/monolog-bundle

,

symfony/var-dumper

, etc.

Vous ne verrez pas la dépendance

symfony/debug-pack

dans votre fichier

composer.json

, car Flex décompresse automatiquement le pack. Cela signifie qu’il n’ajoute que les packages réels en tant que dépendances (par exemple, vous verrez un nouveau

symfony/var-dumper

dans

require-dev

).

Vérification des Vulnérabilités de Sécurité

Le binaire

symfony

, créé lorsque vous avez installé le Symfony CLI, fournit une commande pour vérifier si les dépendances de votre projet contiennent des vulnérabilités de sécurité connues :

symfony check:security

Une bonne pratique de sécurité consiste à exécuter cette commande régulièrement afin de mettre à jour ou remplacer les dépendances compromises dès que possible. La vérification de sécurité est effectuée localement en récupérant la base publique des avis de sécurité PHP, de sorte que votre fichier

composer.lock

n’est pas envoyé sur le réseau.

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. De cette façon, vous pouvez l’ajouter à votre processus de construction de projet et à vos workflows d’intégration continue pour les faire échouer en cas de vulnérabilités.

Dans les services d’intégration continue, vous pouvez vérifier les vulnérabilités de sécurité en utilisant un projet autonome appelé Local PHP Security Checker. C’est le même projet utilisé en interne par

check:security

, mais beaucoup plus petit que l’ensemble du Symfony CLI.

Versions LTS de Symfony

Selon le processus de publication de Symfony, des versions « long-term support » (ou LTS) sont publiées tous les deux ans. Consultez les versions Symfony pour savoir quelle est la dernière version LTS.

Par défaut, la commande qui crée de nouvelles applications Symfony utilise la dernière version stable. Si vous souhaitez utiliser une version LTS, ajoutez l’option

--version

:

symfony new my_project_directory --version=lts
symfony new my_project_directory --version=next
symfony new my_project_directory --version="6.4.*"

Les raccourcis

lts

et

next

ne sont disponibles que lors de l’utilisation de Symfony pour créer de nouveaux projets. Si vous utilisez Composer, vous devez indiquer la version exacte :

composer create-project symfony/skeleton:"6.4.*" my_project_directory

L’application Démo Symfony

L’application Démo Symfony est une application pleinement 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 sur Symfony, et son code contient de nombreux commentaires et notes utiles.

Exécutez cette commande pour créer un nouveau projet basé sur l’application Démo Symfony :

symfony new my_project_directory --demo

Sites Ressources e-Plus Pour Laravel 11

1. Packagist Description : Le principal dépôt de packages PHP, avec une catégorie spécifique pour Laravel. Lien : https://packagist.org Ressources :...