====== Les fichiers .env ======
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
Les variables d'environnement réelles sont prioritaires sur les les variables définies dans les fichiers ''.env''.
NE DÉFINISSEZ PAS DE SECRETS DE PRODUCTION DANS CE FICHIER NI DANS AUCUN AUTRE FICHIER COMMITÉ.\\
[[ https://symfony.com/doc/current/configuration/secrets.html]]
===== Convention de nommages =====
* Les fichiers ''.env'' se terminant par ''local'', ne sont pas commités.
===== Plusieurs fichiers .env =====
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
...
===== En production =====
Exécuter''composer dump-env prod'' pour compiler les fichiers ''.env'' pour une utilisation en production (nécessite symfony/flex >=1.2).\\
[[https://symfony.com/doc/current/best_practices.htmsymfony l#use-environment-variables-for-infrastructure-configuration]]
===== Depannage =====
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.
====== Sources & Ressources ======
* [[https://symfony.com/doc/current/configuration.html#config-dot-env]]