## Gestion des variables d'environnement Les variables d'environnement sont définies dans les fichiers .env (dotenv) > Voir ### Principe général #### Les fichiers d'environnement Les fichiers dotenv s'organisent ainsi : * Un fichier `.env` commun à tous les environnements, il définit des valeurs par défaut. * Un fichier `.env.local`, non versionné, qui surcharge le fichier `.env` avec les données propres à l'environnement local. Il existe d'autres manières de surcharger le fichier d'environnement, mais elles ne nous seront pas utiles ici. #### Variables secrètes Certaines informations sensibles sont stockées de manière cryptée, telles que les informations permettant l'accès aux bases de données. Toutes ces données sont stockées par environnement dans le répertoire `config/secrets`. Pour mettre à jour une variable secrète : bin/console secrets:set MY_SECRET_VAR Pour plus d'informations sur le fonctionnement des secrets : https://symfony.com/doc/current/configuration/secrets.html ### Mise en pratique #### Génération du symlink vers le fichier d'environnement On trouve dans le répertoire `env` des fichiers `.env.` correspondant aux différents environnements de développement, test, production, etc. Lorsque la commande `composer install|update` est exécutée, la commande `bin/console ot:setup:env` s'exécute en post- script et génère un symlink `.env.local` à la racine du projet. Pour forcer la mise à jour du fichier d'environnement : bin/console ot:setup:env Ce symlink pointe vers le fichier d'environnement correspondant à la machine hôte. On peut forcer un nom d'hôte avec l'option `--host`. Ex : bin/console ot:setup:env --host=ci Ou en définissant une variable d'environnement `HOST` : HOST=ci bin/console ot:setup:env #### Génération du fichier des variables secrètes Par ailleurs, la commande `bin/console secrets:decrypt-to-local --force` est aussi exécutée, et génère un fichier `.env.{env}.local` contenant les variables secrètes. (@see https://symfony.com/doc/current/configuration/secrets.html#deploy-secrets-to-production) secrètes ### Déboguer Les variables d'environnement actives peuvent être affichées au moyen de la commande : php bin/console debug:container --env-vars Les variables secrètes peuvent être lues avec : php bin/console secrets:list --reveal Ou pour un autre environnement : APP_RUNTIME_ENV={env} php bin/console secrets:list --reveal