Développement web

Débuter avec Symfony 5 : le fichier .env

Débuter avec Symfony 5 : le fichier .env

Posté le 22/11/2020, à 21:08
Mis à jour le 22/11/2020 à 21:09
citizenz7
Auteur : citizenz7

Lectures : 2997



Sous Symfony le fichier .env est important. Il contient certaines informations cruciales pour le bon fonctionnement de votre projet.
Notamment, on y retrouve les informations de connexion à la base de données MySQL, ... ou SQLite, etc.

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.

Commentaires de l'article 0

Vous devez être connecté(e) pour écrire un commentaire.
Pas encore de compte ? Enregistrez-vous gratuitement.