Symfony avec DDEV
Installation d'un projet Symfony avec DDEV
DDEV est un outil open-source qui simplifie la configuration d'environnements de développement local.
1. Installer DDEV
Tout d'abord, installez DDEV à partir du site officiel : https://ddev.com/get-started/
-
Installer WSL2 avec Ubuntu
Ouvrez PowerShell en tant qu'administrateur et exécutez la commande suivante :
wsl --install
Si l'erreur
Le décodage du contenu a échoué
s'afficheSi, lors de l'installation du Sous-système Windows pour Linux, l'erreur
Le décodage du contenu a échoué
s'affiche, exécutez la commande suivante, dans PowerShell :Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Redémarrez votre ordinateur après l'installation.
astuceUne nouvelle fenêtre s'affiche :
Attendre...
puis saisir le
username
= etudiant et le mot de passe.Vous êtes ensuite automatiquement connecté à la machine Ubuntu :
Retournez dans PowerShell, puis exécutez la commande :
wsl -l -v
-
Assurez-vous qu'Ubuntu est listé et en version 2.
-
Assurez-vous que la virtualisation est activée dans le BIOS de votre ordinateur
Si l'erreur
Le sous-système Windows pour Linux n'a pas de distributions installées.
s'afficheSi, lors de l'installation du Sous-système Windows pour Linux, l'erreur
Le sous-système Windows pour Linux n'a pas de distributions installées.
s'affiche, exécutez la commande suivante, dans PowerShell :wsl --unregister Ubuntu
wsl --install -d Ubuntu -
-
Installer DDEV
Exécutez le script d'installation suivant dans PowerShell en tant qu'administrateur :
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/ddev/ddev/master/scripts/install_ddev_wsl2_docker_inside.ps1'))
Ce script automatise l'installation de DDEV et de ses dépendances, y compris Docker.
Attendre...
Saisissez le mot de passe de l'utilisateur
etudiant
(préalablement saisi). -
Vérifier l'installation
Dans Ubuntu ou dans l'Invite de commandes de Windows, exécutez la commande :
ddev --version
Cela devrait afficher la version de DDEV installée.
astuceSi la commmande
ddev
n'est pas reconnue, il suffit de ré-ouvrir la fenêtre de l'Invite de commandes de Windows.
2. Cloner le projet
Ouvrez le dossier de vos Documents
puis ouvrez une Invite de commandes Windows
(à l'aide de la commande cmd
saisie dans la Barre d'adresse).
Ensuite, clonez le projet Symfony depuis votre dépôt Git :
git clone <URL_DU_REPO> mon-projet-symfony
code mon-projet-symfony
Une fois que vous avez ouvert le code source de votre projet dans *VSCode,
vous pouvez afficher un onglet de Terminal avec le raccourci clavier CTRL
+ I
.
3. Configurer DDEV
Initialisez DDEV dans le répertoire du projet :
ddev config --project-type=php --docroot=public --create-docroot
Si l'erreur unable to run 'docker'
s'affiche
Si l'erreur unable to run 'docker'
s'affiche, cela signifie que vous n'avez pas Docker installé dans votre ordinateur.
Voici les étapes pour installer "Docker Desktop" sur Windows :
-
Téléchargez "Docker Desktop" depuis le site officiel et suivez les instructions d'installation.
-
Une fois installé, ouvrez "Docker Desktop" pour voir l'interface graphique qui montre les conteneurs en cours d'exécution.
Personnaliser la configuration DDEV
Éditez le fichier .ddev/config.yaml
pour ajuster les versions de PHP et MySQL selon les besoins du projet.
Par exemple si votre projet a besoin de PHP 8.1 ou supérieur :
php_version: "8.1"
mysql_version: "8.0"
- Utilisez
--project-type=php
lors de la configuration de DDEV pour un projet Symfony. - Assurez-vous que le
docroot
est défini surpublic
, car c'est le répertoire Web par défaut pour Symfony. - Ajustez les versions de PHP et MySQL dans le fichier de configuration DDEV selon les besoins de votre projet.
4. Démarrer l'environnement DDEV
Lancez l'environnement DDEV :
ddev start
5. Installer les dépendances
Installez les dépendances du projet avec Composer :
ddev composer install
6. Configurer l'environnement Symfony
Pour utiliser la console Symfony, préfixez vos commandes avec ddev exec
.
Par exemple : ddev exec bin/console cache:clear
.
Copiez le fichier .env
en .env.local
et ajustez les paramètres si nécessaire :
ddev exec cp .env .env.local
Éditez .env.local
et modifiez la configuration de la base de données
afin que la variable d'environnement DATABASE_URL
ressemble à ceci :
DATABASE_URL="mysql://db:db@db:3306/db?serverVersion=8.0"
Créez la base de données si elle n'existe pas
ddev exec bin/console doctrine:database:create
Si erreur "bin/console: Permission denied"
ddev exec chmod 755 bin/console
7. Exécuter les migrations
S'il y a des migrations, exécutez-les :
ddev exec bin/console doctrine:migrations:migrate
8. Charger les fixtures (si nécessaire)
Si vous avez des fixtures, chargez-les :
ddev exec bin/console doctrine:fixtures:load
9. Compiler les assets
Compilez les assets si nécessaire (selon votre configuration front-end) :
ddev exec yarn install # ou npm install
ddev exec yarn build # ou npm run build
Si erreur "Couldn't find a package.json file in "/var/www/html""
Cette erreur indique qu'il n'y a pas d'assets à construire.
Dans ce cas pour pouvez sautez l'étape "Compiler les assets".
10. Vérifier l'installation
Ouvrez le projet dans votre navigateur :
ddev launch
Notes supplémentaires
- Assurez-vous que tous les services requis (comme Mailer) sont correctement configurés dans votre
.env.local
. - Si vous rencontrez des problèmes de permissions, vous pouvez utiliser
ddev exec
pour exécuter des commandes avec les bonnes permissions. - Pour utiliser la console Symfony, préfixez vos commandes avec
ddev exec
, par exemple :ddev exec bin/console cache:clear
.
Votre projet Symfony devrait maintenant être opérationnel dans l'environnement DDEV.
Pour afficher les informations du projet (par exemple pour se connecter à la base de données dans le conteneur Docker), il suffit d'exécuter la commande :
ddev describe
Vous pouvez commencer à développer et à personnaliser votre application selon vos besoins.