Le fichier d'environnement .env
<p><strong>Le fichier d'environnement .env</strong><p>Le fichier d'environnement contient toutes les variables d'environnement de votre système qui sont en fait des constantes, les paramètres de la base de données, vos clés Aws...</p><p>Ce fichier est un peu particulier, c'est un fichier texte, auquel le système peut accéder grâce a la méthode env('key')</p><p>Les clés sont écrites en majuscule (ce sont des constantes), et les valeurs doivent être entre apostrophe, si elles contiennent des espaces.</p><p>Pour mettre en commentaire une constante on utiliser le caractère #</p><pre class="language-php"><code># VOTRE APPLICATION
APP_NAME="Mon application de démonstration" // son nom
APP_ENV=local // le mode, local en développement, et production sur le serveur
APP_KEY=base64:qtrxnJk7b9oX2OFm6XXCnrYircR8hECFhHPYLj3CsQM= // key pour encrypter les données et le hashage des mots de pass
APP_DEBUG=true // debugage, true en développement, et false en production
APP_URL=http://stuff.test // l'url de l'application
# LES LOGS
LOG_CHANNEL=stack
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
# LA BASE DE DONNEES
DB_CONNECTION=mysql // type de base, les drivers sont définies dans config/database.php
DB_HOST=192.168.10.10 // l'url du serveur
DB_PORT=3306 // le port défaut mysql
DB_DATABASE=db_stuff // la base
DB_USERNAME=homestead // l'utilisateur
DB_PASSWORD=secret // le mot de passe
BROADCAST_DRIVER=log // le driver de broadcast, pour par exemple un chat, config/broadcasting.php
CACHE_DRIVER=file // le driver de cache, config/cache.php
FILESYSTEM_DISK=local // le stockage de fichier config/filsystem.php
QUEUE_CONNECTION=sync // le mode pour les queues config/queue.php
SESSION_DRIVER=file // la session config/session.php
SESSION_LIFETIME=120 // la durée de vie de la session en minute
MEMCACHED_HOST=127.0.0.1 // l'url du serveur MEMCACHED dans le cas de cache avec MEMCACHED
# LES PARAMETRES REDIS DANS LE CAS DE CACHE AVEC REDIS
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
# LES PARAMETRES D'EMAIL POUR L'ENVOI D'EMAIL
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=hello@example.com
MAIL_FROM_NAME="${APP_NAME}"
# PARAMETRE AMAZON
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false
# PARAMETRE PUSHER POUR LE BROADCASTING
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_HOST=
PUSHER_PORT=443
PUSHER_SCHEME=https
PUSHER_APP_CLUSTER=mt1
VITE_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
VITE_PUSHER_HOST="${PUSHER_HOST}"
VITE_PUSHER_PORT="${PUSHER_PORT}"
VITE_PUSHER_SCHEME="${PUSHER_SCHEME}"
VITE_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"</code></pre><p>Le fichier d'environnement ne doit pas être diffusé, et donc ne pas faire partie de votre dépôt github. </p><p>Nous pouvons ajouter au tant de clé/valeur que nous souhaitons, si nous ajoutons des clés/valeurs, il faudra ajouter seulement la clé au fichier .env.example, afin que les collaborateurs sachent que vous utilisez d'autres clés, comme par exemple :</p><pre class="language-php"><code>STRIPE_PUBLIC_KEY=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_KEY=</code></pre><p>Toutes ses clés/valeurs sont récupérables dans les fichiers de configuration, comme par exemple, dans config/app.php</p><pre class="language-php"><code>'name' = env('APP_NAME', 'Laravel'),</code></pre><p>Ici nous récupérons la clé APP_NAME, si elle n'existe pas, la valeur par défaut sera 'Laravel'</p><p>Enfin il est très fortement déconseillé d'utiliser la méthode env('key'), en dehors des fichiers de configuration (dossier config), car en production, si nous mettons la configuration en "cache", le fichier d'environnement ne sera plus accessible.</p></p>
De Jérôme Borg
Le 23 février 2023
Temps de lecture : 5 min
Le 23 février 2023
Temps de lecture : 5 min