16 avr. 2024 | Connexion

Blog

Débuter avec Symfony 5 : le fichier .env

Débuter avec Symfony 5 : le fichier .env

Développement web
Symfony PHP MySQL Twig

il y a 3 ans citizenz7 0 commentaire 10499 lectures

Exemple pour une connexion MySQL :
DATABASE_URL=mysql://USER:PASSWORD@127.0.0.1:3306/MABASE?serverVersion=mariadb-10.3.25

Remarquez qu'ici j'ai précisé le type de serveur et sa version à la fin de la ligne. Cela m'a notamment été utile sur certains types d'environnement (Wamp sous Windows par exemple).
Ce fichier .env contient aussi les informations pour l'envoi de mail si vous décidez d'utiliser cette fonctionnalité (pour la vérification du compte lors de l'inscription, pour un formulaire de contact ou pour l'envoi d'un nouveau mot de passe...). Il contient aussi des informations concernant l'environnement technique de Symfony. En effet, vous pouvez faire tourner votre projet soit en environnement de développement (DEV) soit en environnement de production (PROD).

L’environnement de développement vous proposera plusieurs options et fonctionnalités spécifiques comme la barre de développement (en bas d'écran) qui vous permettra d'obtenir des tonnes d'infos sur l'état de votre projet (les erreurs éventuelles, la taille de la mémoire prise par le projet, les infos de connexion et d'authentification, etc.). Les erreurs seront, de plus, affichées avec toutes les infos de débug nécessaires à la correction du problème...

Une fois le développement de votre projet terminé et une fois les tests passés, vous passerez simplement la variable APP_ENV à prod (ou lieu de env). Les pages d'erreurs (404,403, 50x) seroint ainsi affichées pleinement.

Enfin, je vous conseille fortement de ne pas utiliser directement le fichier .env, tel quel.
Une astuce consiste à créer un nouveau fichier .env.local à la racine du projet et d'y copier intégralement le contenu du fichier .env. Veillez à ne laisser aucun identifiant, mot de passe, etc. dans le fichier .env.
En effet, Symfony est configuré pour chercher sa configuration premièrement dans .env puis dans tous les fichiers du type .env.*.

Quel intérêt de faire ça ? Cela concerne la sécurité, notamment si vous avez mis votre code sur Github, avec accès public. Vous ne voudriez pas que tous vos identifiants soient en accès libre sur Github ? Et bien en utilisant .env.local, cela n'arrivera pas car il ne sera pas "commité" (cf. le fichier .gitignore à la racine du site).
Git n'enverra que le fichier .env, qui ne contiendra aucune infos ou détails du site.

0 commentaire


Nb d'articles actifs : 46 | Nb de commentaires : 31 | Nb de catégories : 8 | Nb de tags : 32 | Nb total de lectures : 187 840
2024 citizenz.info • Some rights reserved GPLv3 • Version 3.3.4

Avec un pif pareil ils feraient mieux de chercher des truffes plutôt que de nous emmerder ! (Léodagan, Kaamelott, Livre II, Amen)