Contactez-nous

Préparation de votre environnement de développement

Mettez en place votre environnement de développement Symfony : installation de PHP, Composer, Symfony CLI, création de projet et configuration de l'éditeur.

Les fondations : installation de PHP, Composer et du Symfony CLI

Avant de plonger dans la création de votre première application Symfony, il est indispensable de s'assurer que votre machine dispose des outils fondamentaux. Ces outils constituent le socle sur lequel reposera tout votre travail de développement avec Symfony. Nous allons couvrir l'installation de PHP, le langage de programmation de Symfony, de Composer, le gestionnaire de dépendances pour PHP, et du Symfony CLI, l'utilitaire en ligne de commande officiel de Symfony.

PHP : Symfony nécessite une version spécifique de PHP. Au moment de la rédaction de ces lignes, Symfony 6.x requiert PHP 8.1 ou supérieur. Pour vérifier votre version de PHP, ouvrez un terminal (ou invite de commandes) et tapez :

php -v

Si PHP n'est pas installé ou si la version est trop ancienne, vous devrez l'installer ou le mettre à jour. Les méthodes d'installation varient selon votre système d'exploitation :

  • Windows : Vous pouvez utiliser des installateurs comme ceux fournis sur php.net ou des environnements complets comme XAMPP, WampServer, ou Laragon. Assurez-vous que le chemin vers l'exécutable PHP est ajouté à votre variable d'environnement PATH.
  • macOS : PHP est souvent préinstallé, mais il est généralement préférable d'utiliser Homebrew pour installer et gérer les versions de PHP :
    brew install php
  • Linux : Utilisez le gestionnaire de paquets de votre distribution. Par exemple, sur Debian/Ubuntu :
    sudo apt update && sudo apt install php php-cli php-xml php-curl php-mbstring php-zip # et autres extensions utiles
    N'oubliez pas d'installer les extensions PHP requises par Symfony (comme `ctype`, `iconv`, `json`, `session`, `simplexml`, `tokenizer`, `xml`, etc. La plupart sont souvent incluses par défaut, mais `php-xml` ou `php-dom` peuvent manquer).

Composer : C'est le gestionnaire de paquets standard pour PHP. Il vous permettra d'installer Symfony lui-même ainsi que toutes les bibliothèques (dépendances) dont votre projet aura besoin. Pour l'installer, suivez les instructions sur le site officiel de Composer. Une fois installé, vous devriez pouvoir exécuter :

composer --version

Symfony CLI : C'est un outil en ligne de commande qui simplifie grandement la création de projets Symfony, la gestion du serveur de développement local, et d'autres tâches courantes. Pour l'installer, référez-vous à la page de téléchargement officielle de Symfony. Les instructions varient légèrement selon votre OS. Sur Linux ou macOS, une commande typique pourrait être :

wget https://get.symfony.com/cli/installer -O - | bash

Ou en utilisant curl :

curl -sS https://get.symfony.com/cli/installer | bash

Sur Windows, un installeur .exe est généralement fourni. Après installation, vérifiez son fonctionnement :

symfony --version

Assurez-vous également que Symfony CLI détecte correctement votre installation PHP avec la commande :

symfony check:requirements

Cette commande listera les éventuels problèmes ou extensions PHP manquantes pour faire fonctionner Symfony de manière optimale.

Premier pas : création de votre projet Symfony avec le Symfony CLI

Une fois PHP, Composer et le Symfony CLI installés et fonctionnels, vous êtes prêt à créer votre premier projet Symfony. Le Symfony CLI rend cette étape particulièrement simple et rapide.

Ouvrez votre terminal, naviguez jusqu'au répertoire où vous souhaitez créer votre projet (par exemple, un dossier `projets` ou `workspace`), puis exécutez la commande suivante :

symfony new mon_premier_projet --webapp

Décortiquons cette commande :

  • symfony new : C'est la commande du Symfony CLI pour créer un nouveau projet.
  • mon_premier_projet : C'est le nom du répertoire qui sera créé pour votre projet. Vous pouvez choisir le nom que vous souhaitez.
  • --webapp : C'est une option importante. Elle indique à Symfony CLI de créer un projet avec un ensemble de paquets typiquement nécessaires pour une application web traditionnelle (comme Twig pour les templates, Doctrine pour la base de données, etc.). Si vous vouliez créer une micro-application ou une API minimaliste, vous pourriez omettre cette option ou utiliser --skeleton pour un projet vraiment dépouillé.

Le Symfony CLI va alors télécharger le squelette de l'application Symfony, puis utiliser Composer pour installer toutes les dépendances initiales. Cela peut prendre quelques minutes en fonction de votre connexion internet. Une fois le processus terminé, un nouveau répertoire nommé mon_premier_projet (ou le nom que vous avez choisi) aura été créé.

Naviguez dans le répertoire de votre nouveau projet :

cd mon_premier_projet

Votre projet Symfony est maintenant créé ! Pour vérifier que tout fonctionne, vous pouvez démarrer le serveur de développement local intégré au Symfony CLI :

symfony server:start

Cette commande démarrera un serveur web local (généralement sur http://127.0.0.1:8000 ou http://localhost:8000). Ouvrez cette adresse dans votre navigateur. Vous devriez voir la page d'accueil par défaut de Symfony, confirmant que votre installation et la création du projet se sont bien déroulées. Pour arrêter le serveur, vous pouvez retourner au terminal et appuyer sur Ctrl+C, ou exécuter symfony server:stop.

Exploration initiale : tour d'horizon de la structure d'un projet Symfony

Après avoir créé votre projet Symfony, il est utile de se familiariser avec sa structure de répertoires. Comprendre où se trouvent les différents types de fichiers vous aidera grandement à naviguer et à développer votre application. Voici les principaux répertoires que vous trouverez à la racine de votre projet :

  • bin/ : Contient le script de console (console). C'est par ce script que vous exécuterez la plupart des commandes Symfony en ligne de commande (par exemple, php bin/console make:controller).
  • config/ : Ce répertoire est crucial. Il contient tous les fichiers de configuration de votre application. Vous y trouverez :
    • routes/ : Pour la configuration des routes (bien que les attributs dans les contrôleurs soient souvent préférés).
    • services.yaml : Pour la configuration du conteneur de services et l'injection de dépendances.
    • packages/ : Pour la configuration spécifique à chaque bundle/paquet installé (par exemple, doctrine.yaml, twig.yaml).
    • bundles.php : Pour enregistrer les bundles actifs dans votre application.
  • migrations/ : Si vous utilisez Doctrine, ce répertoire contiendra les fichiers de migration de base de données générés par Doctrine Migrations.
  • public/ : C'est le seul répertoire accessible publiquement depuis un navigateur web. Il contient le contrôleur frontal (index.php), qui est le point d'entrée unique de toutes les requêtes HTTP vers votre application. C'est également ici que vous placerez vos assets publics (CSS, JavaScript, images, etc.).
  • src/ : Le coeur de votre application ! C'est ici que vous écrirez la majorité de votre code PHP :
    • Controller/ : Pour vos classes de contrôleurs.
    • Entity/ : Si vous utilisez Doctrine, pour vos classes d'entités mappées à la base de données.
    • Form/ : Pour vos classes de types de formulaires.
    • Repository/ : Si vous utilisez Doctrine, pour vos classes de repositories (qui contiennent la logique de requêtage à la base de données).
    • Service/ (ou d'autres noms selon votre organisation) : Pour vos classes de services métier.
    • Kernel.php : La classe principale du noyau de votre application Symfony.
  • templates/ : Contient tous vos fichiers de templates Twig, organisés généralement en sous-répertoires correspondant à vos contrôleurs ou fonctionnalités. Vous y trouverez un fichier base.html.twig qui sert souvent de layout principal.
  • tests/ : Pour vos tests unitaires et fonctionnels.
  • var/ : Contient les fichiers générés par l'application, comme les fichiers de cache (var/cache/) et les logs (var/log/). Ce répertoire doit être inscriptible par votre serveur web. Il est généralement ignoré par les systèmes de contrôle de version.
  • vendor/ : Ce répertoire est géré par Composer. Il contient Symfony lui-même ainsi que toutes les bibliothèques tierces (dépendances) dont votre projet a besoin. Vous ne devriez jamais modifier manuellement les fichiers dans ce répertoire.
  • composer.json et composer.lock : Fichiers de configuration pour Composer, listant les dépendances de votre projet et leurs versions exactes.
  • symfony.lock : Fichier utilisé par Symfony Flex pour gérer les "recettes" (configurations par défaut pour les paquets).
  • .env et .env.local : Fichiers pour définir les variables d'environnement de votre application (identifiants de base de données, clés API, etc.). .env est versionné avec des valeurs par défaut, tandis que .env.local (qui doit être ignoré par Git) contient vos valeurs spécifiques et secrètes.

Prenez un moment pour explorer ces répertoires dans votre éditeur de code. Cette familiarisation initiale vous sera très précieuse par la suite.

Optimiser votre flux de travail : configuration de base de votre éditeur de code

Un environnement de développement bien configuré inclut un éditeur de code ou un IDE (Integrated Development Environment) adapté à vos besoins et optimisé pour le langage et le framework que vous utilisez. Pour Symfony (et PHP en général), des éditeurs comme Visual Studio Code (VS Code), PhpStorm, Sublime Text ou Atom sont populaires. Nous allons nous concentrer sur VS Code à titre d'exemple, mais les principes s'appliquent aux autres.

Extensions utiles pour VS Code :

  • PHP Intelephense (ou PHP IntelliSense) : Fournit une autocomplétion avancée du code PHP, la navigation dans le code, la détection d'erreurs et le formatage. C'est un must-have.
  • Symfony for VSCode (par TheNouillet) ou Symfony VSCode (par DEVSENSE) : Ces extensions offrent des fonctionnalités spécifiques à Symfony, comme l'autocomplétion pour les noms de routes, les services, les paramètres de templates Twig, la navigation vers les fichiers de configuration, etc.
  • Twig Language 2 (ou similaire) : Ajoute la coloration syntaxique et les snippets pour les fichiers Twig.
  • PHP Debug (par Xdebug) : Permet d'intégrer le débogueur Xdebug directement dans VS Code pour un débogage pas à pas de votre code PHP. L'installation de Xdebug lui-même est une étape séparée (pecl install xdebug ou via votre gestionnaire de paquets PHP) et sa configuration dans php.ini est nécessaire.
  • DotENV : Ajoute la coloration syntaxique pour les fichiers .env.
  • GitLens : Améliore considérablement l'intégration de Git dans VS Code, affichant l'historique des lignes, les auteurs, etc.
  • Composer (par DEVSENSE ou junstyle) : Fournit des commandes et une autocomplétion pour gérer votre fichier composer.json.

Pour installer une extension dans VS Code, ouvrez la vue Extensions (icône des carrés dans la barre latérale ou Ctrl+Shift+X), recherchez le nom de l'extension et cliquez sur "Installer".

Configuration de base :

  • Formatteur de code : Assurez-vous d'avoir un formateur PHP configuré (souvent fourni par PHP Intelephense ou vous pouvez installer `php-cs-fixer` ou `phpcbf` et les intégrer). Configurez VS Code pour formater le code lors de la sauvegarde (editor.formatOnSave). Respecter les standards de codage PSR-12 est une bonne pratique.
  • Chemin de l'exécutable PHP : Dans les paramètres de VS Code (settings.json), vous pouvez spécifier le chemin vers votre exécutable PHP si l'extension de débogage ou de linting en a besoin et ne le trouve pas automatiquement (par exemple, "php.validate.executablePath": "/usr/bin/php" ou le chemin équivalent sur Windows).
  • Intégration du terminal : VS Code possède un terminal intégré très pratique (Ctrl+`). Vous pouvez y exécuter vos commandes Symfony CLI, Composer, Git, etc., sans quitter l'éditeur.

Un bon éditeur bien configuré ne se contente pas de colorer votre code ; il vous aide activement à écrire un meilleur code, plus rapidement, et à naviguer efficacement dans des projets complexes comme ceux développés avec Symfony. Prenez le temps d'explorer les fonctionnalités de votre éditeur et de l'adapter à votre style de travail.