Les applications Symfony sont livrées avec un fichier appelé .env situé dans le répertoire racine du projet.
Ce fichier est utilisé pour définir la valeur des variables d'environnement.
Dans tous les environnements, les fichiers suivants sont chargés s'ils existent,
Le dernier chargé étant prioritaires sur les premiers :
.env contient les valeurs par défaut des variables d'environnement nécessaires à l'application..env.local est un fichier non comité avec des surcharges locales..env.$APP_ENV contient les valeurs par défaut spécifiques à l'environnement.env.$APP_ENV.local fichier non commité avec des valeurs spécifiques à l'environnement.env.
.env se terminant par local, ne sont pas commités.
On peut créer plusieurs fichiers .env en fonction de l'environnement ou on se trouve.
.env.env.local.env.prod.local.env.dev.local
Le fichier .env.xxx qui sera utilisé pour surchargé le fichier .env est paramétré dans le fichier .env lui méme en definissant la variable APP_ENV
.... APP_ENV=prod # Chargera .env.prod.local ...
composer dump-env prod pour compiler les fichiers .env pour une utilisation en production (nécessite symfony/flex >=1.2).
On peut visualiser le mecanisme avec symfony console debug:dotenv
thierry@obi1:/var/www/test$ php bin/console debug:dotenv Dotenv Variables & Files ======================== Scanned Files (in descending priority) -------------------------------------- * ⨯ .env.local.php * ⨯ .env.dev.local * ⨯ .env.dev * ⨯ .env.local * ✓ .env Variables --------- ------------ ---------------------------------- ----------------------------------- Variable Value .env ------------ ---------------------------------- ----------------------------------- APP_ENV dev dev APP_SECRET 0f363272eae2f703c2d2f0fe1b8db8bd 0f363272eae2f703c2d2f0fe1b8db8... ------------ ---------------------------------- ----------------------------------- // Note real values might be different between web and CLI.