Introduction
Tous les fichiers de configuration du framework Laravel sont stockés dans le répertoireconfig/. Chaque option est commentée : ouvrez les fichiers pour découvrir les options disponibles.
Ils gèrent de nombreux paramètres essentiels : connexion à la base de données, serveur d’e-mails, URL de l’application, clé de chiffrement, etc.
Commande about
La commande Artisan about affiche un aperçu de la configuration, des drivers et de l’environnement de l’application.
--only.
config:show est pratique.
Configuration d’environnement (.env)
On souhaite souvent modifier les valeurs de configuration selon l’environnement (par exemple, un driver de cache différent entre local et production). Laravel s’appuie sur la bibliothèque PHP DotEnv. Lors d’une nouvelle installation, un fichier.env.example contenant les variables d’environnement usuelles est présent à la racine, et il est automatiquement copié en .env pendant l’installation.
Pour un travail en équipe, gardez
.env.example versionné et à jour. Avec des valeurs placeholders, les autres développeurs savent immédiatement quelles variables d’environnement configurer.Sécurité du fichier d’environnement
Laravel propose toutefois une fonctionnalité de chiffrement du fichier d’environnement : dans sa forme chiffrée, il peut être stocké en toute sécurité dans le dépôt.Fichiers d’environnement supplémentaires
Au démarrage, Laravel vérifie la variableAPP_ENV ou l’argument CLI --env. Si présent, il charge le fichier .env.[APP_ENV] s’il existe. Sinon, il utilise le fichier .env par défaut.
Types des variables d’environnement
Toutes les variables du.env sont analysées comme des chaînes, mais des valeurs spéciales permettent à env() de retourner d’autres types.
Pour une valeur avec espaces, entourez-la de guillemets doubles.
Récupération des variables d’environnement
Toutes les variables du.env sont chargées dans la superglobale $_ENV à la réception d’une requête. Dans les fichiers de configuration, récupérez-les via env().
Vérifier l’environnement actuel
L’environnement courant est déterminé parAPP_ENV. Utilisez la méthode environment de la façade App.
Chiffrement des fichiers d’environnement
Les fichiers d’environnement non chiffrés ne doivent pas être versionnés, mais Laravel offre une fonctionnalité pour les chiffrer.Chiffrement
Pour chiffrer un fichier d’environnement, utilisez la commandeenv:encrypt.
.env est chiffré et son contenu chiffré est enregistré dans un fichier .env.encrypted. La clé de déchiffrement s’affiche en sortie de commande : conservez-la dans un gestionnaire de mots de passe sécurisé.
Pour fournir votre propre clé de chiffrement, utilisez l’option --key.
La longueur de la clé fournie doit correspondre à celle exigée par le chiffrement utilisé. Par défaut, Laravel utilise le chiffrement
AES-256-CBC, qui requiert une clé de 32 caractères. Vous êtes libre d’utiliser n’importe quel chiffrement pris en charge par le chiffrement de Laravel en passant l’option --cipher..env et .env.staging, vous pouvez spécifier lequel chiffrer via l’option --env.
Noms de variables lisibles
Lors du chiffrement d’un fichier d’environnement, l’option--readable permet de conserver les noms des variables visibles tout en ne chiffrant que leurs valeurs.
env:decrypt.
Lors de l’utilisation de l’option
--readable, les commentaires et les lignes vides du fichier d’environnement d’origine ne sont pas inclus dans le fichier chiffré généré.Mise à jour des fichiers d’environnement chiffrés lisibles
Lors de la mise à jour d’un fichier d’environnement chiffré au format lisible, Laravel conserve les valeurs inchangées et supprime les variables qui n’existent plus dans le fichier d’environnement source.--force. Cela permet de changer la clé de chiffrement ou de remplacer un fichier chiffré devenu invalide.
Déchiffrement
Pour déchiffrer un fichier d’environnement, utilisez la commandeenv:decrypt. Elle nécessite une clé de déchiffrement, que Laravel récupère depuis la variable d’environnement LARAVEL_ENV_ENCRYPTION_KEY.
--key.
env:decrypt s’exécute, Laravel déchiffre le contenu du fichier .env.encrypted et l’écrit dans le fichier .env.
Utilisez l’option --cipher pour déchiffrer avec un chiffrement personnalisé.
.env et .env.staging, vous pouvez spécifier lequel déchiffrer via l’option --env.
--force.
Accès aux valeurs de configuration
Utilisez la façadeConfig ou le helper global config() pour accéder aux valeurs depuis n’importe où. Utilisez la « notation point » : nom de fichier et nom d’option.
Config::set() ou passez un tableau à config().
Cache de configuration
Pour améliorer les performances, mettez toutes les configurations en cache dans un seul fichier..env n’est plus lu pendant les requêtes ni pour les commandes Artisan. env() ne renvoie alors que les variables système.
Pour vider le cache :
Publication des fichiers de configuration
Beaucoup de fichiers sont déjà publiés dansconfig/, mais certains (cors.php, view.php, etc.) ne le sont pas par défaut.
Publiez-les avec config:publish.
Mode debug
L’optiondebug de config/app.php détermine le niveau d’information d’erreur affiché à l’utilisateur. Par défaut, elle suit la valeur de APP_DEBUG dans .env.
Mode maintenance
Quand l’application est en mode maintenance, une vue personnalisée est affichée pour toutes les requêtes. Cela permet de la « désactiver » temporairement pendant une mise à jour ou une opération de maintenance.Activer le mode maintenance
--refresh recharge automatiquement le navigateur après le nombre de secondes indiqué.
--retry définit la valeur de l’en-tête HTTP Retry-After.
Contourner le mode maintenance
Utilisez--secret pour n’autoriser que certains utilisateurs via un token.
--with-secret, Laravel génère automatiquement le token.
Mode maintenance sur plusieurs serveurs
Par défaut, Laravel gère la maintenance via un fichier. Pour un déploiement multi-serveurs, préférez la méthode basée sur le cache.Pré-rendu de la vue maintenance
Pendantphp artisan down, si des utilisateurs accèdent au site alors que les dépendances sont en cours de mise à jour, ils peuvent voir une erreur. Utilisez --render pour pré-rendre la vue.
Désactiver le mode maintenance
Personnalisez le template par défaut du mode maintenance en créant
resources/views/errors/503.blade.php.Prochaines étapes
Routage
Apprenez les bases du routage qui lie URL et contrôleurs.