Paramétrer Symfony pour utiliser les fichiers .env

Je pensais que, comme le composant est fourni, il était activé…

a marqué ce sujet comme résolu.

Bonjour tout le monde !

Je me suis penché sur les fichier .env aujourd’hui, parce que je me suis rendu compte que pour certains paramètres, je ne peux pas les versionner, et ces fichiers me semblent tout indiqués pour enregistrer ces valeurs.

Vu que je travaille avec Symfony 3.3.3, j’imaginais qu’il me suffirait de créer un fichier .env avec mes valeurs, et qu’il serait lu automatiquement. Vous vous en doutez, ce n’est pas le cas, mais ça me surprend.

Est-ce qu’il n’y a vraiment pas d’autre moyen que de modifier app.php et app_dev.php pour y mettre la ligne afin de charger explicitement la configuration ?

Merci  :)

+0 -0

C’est vrai qu’avoir les fichiers de configuration de chaque environnement peut poser problème. D’où l’utilisation des fichiers .env. Ma précédente réponse tombe à l’eau.

Je pense à cette annonce (plus précisément ce commentaire qui mentionne cette possibilité), et la documentation correspondante

Ymox

As-tu essayé de réécrire registerContainerConfiguration app/AppKernel.php ? En ajoutant le chargement du fichier .env ?

Justement, c’est ce que j’essaie de comprendre si c’est évitable, parce que là, à chaque mise à jour (et il y en a eu quatre ces deux-trois dernières semaines), je vais devoir remettre ces chargements…

+0 -0

Justement, c’est ce que j’essaie de comprendre si c’est évitable, parce que là, à chaque mise à jour (et il y en a eu quatre ces deux-trois dernières semaines), je vais devoir remettre ces chargements…

Ymox

Pour mettre à jour Symfony suis-tu ces instructions ? Il me semblait que c’était uniquement vendor qui devait être mis à jour et que app/AppKernel.php était propre à notre application. Et que c’était justement pour subir des modifications propre à notre application qu’elle héritait de la class Kernel de Symfony.

+0 -0

Ouh, au temps pour moi.

Oui, je fais bien les mises à jour avec Composer, et du coup oui, je peux changer mon AppKernel… Mais l’objet DotEnv n’implémente pas LoaderInterface comme passé en paramètre de AppKernel::registerContainerConfiguration, donc je dois créer l’objet dans la méthode. Pas très pratique si celle-ci est appelée plusieurs fois… Enfin, je ne vois pas d’autre alternative.

Je reste surpris que ce ne soit pas "automatique", ni que la documentation ne soit pas un peu plus explicite, pour le coup.

Edit

Bon, en fait même charger le fichier .env avant les autres éléments de configuration ne fonctionne pas non plus.

+0 -0

Non, j’ai laissé tombé. Avec Symfony 4, c’est automatiquement utilisé, et du coup le code pour charger le fichier .env est compris dans index.php (l’équivalent Symfony 4 de app.php et app_dev.php), ce qui règle le cas des mises à jour écrasant la chose.

La seule autre alternative que je verrais est de modifier les deux fichiers app.php et app_dev.php, d’en faire des copies (qui peuvent être versionnées aussi), et d’écraser les "vraies" versions suite aux mises à jour, quitte à faire un diff manuellement pour ne pas louper les éventuelles mises à jour du contenu officiel.

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte