Configuration d'une application Laravel - Letecode
NON ! à la guerre à l'Est de la RDC rdc ! non à la guerre

Configuration Laravel

Dernière mise à jour : 16/06/2022

Dans ce chapitre, vous allez découvrir en détails, les différentes configurations de votre application Laravel.

Tous les fichiers de configuration du framework Laravel sont stockés dans le répertoire config. Chaque option est documentée, alors n'hésitez pas à parcourir les fichiers et à vous familiariser avec les options qui s'offrent à vous.

Ces fichiers de configuration vous permettent de configurer des éléments tels que les informations de connexion à votre base de données, les informations de votre serveur de messagerie, ainsi que diverses autres valeurs de configuration de base telles que le fuseau horaire de votre application et la clé de chiffrement.

Configuration de l'environnement

Il est souvent utile d'avoir des valeurs de configuration différentes en fonction de l'environnement dans lequel l'application s'exécute. Par exemple, vous souhaiterez peut-être utiliser localement un pilote de cache différent de celui que vous utilisez sur votre serveur de production.

Pour en faire un jeu d'enfant, Laravel utilise la bibliothèque PHP DotEnv. Dans une nouvelle installation de Laravel, le répertoire racine de votre application contiendra un fichier .env.example qui définit de nombreuses variables d'environnement courantes. Pendant le processus d'installation de Laravel, ce fichier sera automatiquement copié dans .env.

Le fichier par défaut de Laravel contient .env des valeurs de configuration courantes qui peuvent différer selon que votre application s'exécute localement ou sur un serveur Web de production. Ces valeurs sont ensuite récupérées à partir de divers fichiers de configuration Laravel dans le répertoire config à l'aide de la fonction Laravel env().

Si vous développez avec une équipe, vous souhaiterez peut-être continuer à inclure un fichier .env.example avec votre application. En plaçant des valeurs d'espace réservé dans l'exemple de fichier de configuration, les autres développeurs de votre équipe peuvent voir clairement quelles variables d'environnement sont nécessaires pour exécuter votre application.

Toute variable de votre fichier .env peut être remplacée par des variables d'environnement externes telles que des variables d'environnement au niveau du serveur ou du système.

Clé de l'application

La définition d’une clé d’application (clé de chiffrement)  est essentielle à la sécurité de notre projet. Si la clé d’application n’est pas définie, vos sessions utilisateur et autres données cryptées ne seront pas sécurisées.

La commande suivante définira la clé d’application pour vous :

php artisan key:generate

La clé sera enregistré dans la variable APP_KEY.

Url de l'application

L'url de votre application est défini sur APP_URL. comme vous êtes en local, la variable est définie comme suit :

APP_URL=http://localhost

Base de données

Dès que vous êtes prêt à utiliser une base de données, rendez vous dans votre gestionnaire de base de données (ex. PhpMyAdmin) et créez une base de données vide. Puis mettez les valeurs de connexion dans le fichier .env à la section suivante :

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

Sécurité des fichiers d'environnement

Votre fichier .env ne doit pas être engagé dans le contrôle de code source de votre application, car chaque développeur/serveur utilisant votre application peut nécessiter une configuration d'environnement différente. De plus, cela constituerait un risque pour la sécurité dans le cas où un intrus accèderait à votre référentiel de contrôle de source, car toutes les informations d'identification sensibles seraient exposées.

Types de variables d'environnement

Toutes les variables de vos .envfichiers sont généralement analysées comme des chaînes, donc certaines valeurs réservées ont été créées pour vous permettre de renvoyer une plus large gamme de types à partir de la fonction env():

Si vous devez définir une variable d'environnement avec une valeur contenant des espaces, vous pouvez le faire en plaçant la valeur entre guillemets :

APP_NAME="My Application"

Récupération de la configuration de l'environnement

Toutes les variables répertoriées dans ce fichier seront chargées dans le super-global PHP $_ENV lorsque votre application recevra une requête. Cependant, vous pouvez utiliser l'assistant env pour récupérer les valeurs de ces variables dans vos fichiers de configuration. En fait, si vous examinez les fichiers de configuration de Laravel, vous remarquerez que de nombreuses options utilisent déjà cet assistant :

'debug' => env('APP_DEBUG', false),

La deuxième valeur passée à la envfonction est la "valeur par défaut". Cette valeur sera retournée si aucune variable d'environnement n'existe pour la clé donnée.

Accès aux valeurs de configuration

Vous pouvez facilement accéder à vos valeurs de configuration à l'aide de la fonction config d'assistance globale depuis n'importe où dans votre application. Les valeurs de configuration sont accessibles à l'aide de la syntaxe "dot", qui inclut le nom du fichier et l'option auxquels vous souhaitez accéder. Une valeur par défaut peut également être spécifiée et sera renvoyée si l'option de configuration n'existe pas :

$value = config('app.timezone');
/* rétourner une valeur si l'option démandée est introuvable
$value = config('app.timezone', 'Africa/Kinshasa');

Pour définir les valeurs de configuration lors de l'exécution, transmettez un tableau à l'assistant config:

config(['app.timezone' => 'America/Chicago']);

Mode débogage

L'option debug de votre fichier de configuration config/app.php détermine la quantité d'informations sur une erreur qui est réellement affichée à l'utilisateur. Par défaut, cette option est définie pour respecter la valeur de la variable APP_DEBUG d'environnement, qui est stockée dans votre fichier .env.

Pour le développement local, vous devez définir la variable d'environnement APP_DEBUG sur true. Dans votre environnement de production, cette valeur doit toujours être false. Si la variable est définie sur true en production, vous risquez d'exposer des valeurs de configuration sensibles aux utilisateurs finaux de votre application.

Mode de Maintenance

Lorsque votre application est en mode maintenance, une vue personnalisée s'affiche pour toutes les requêtes dans votre application. Cela facilite la "désactivation" de votre application pendant sa mise à jour ou lorsque vous effectuez une maintenance. Une vérification du mode de maintenance est incluse dans la pile middleware par défaut de votre application. Si l'application est en mode maintenance, une instance Symfony\Component\HttpKernel\Exception\HttpException sera levée avec un code d'état de 503.

Pour activer le mode maintenance, exécutez la commande Artisan down:

php artisan down

Si vous souhaitez que le header HTTP  Refresh soit envoyé avec toutes les réponses du mode de maintenance, vous pouvez fournir l'option refresh lors de l'appel de la commande down. Le header Refresh demandera au navigateur d'actualiser automatiquement la page après le nombre de secondes spécifié :

php artisan down --refresh=15

Contourner le mode de maintenance

Même en mode maintenance, vous pouvez utiliser l'option secret pour spécifier un jeton de contournement du mode maintenance :

php artisan down --secret="1630542a-246b-4b66-afa1-dd72a4c43515"

Après avoir placé l'application en mode maintenance, vous pouvez accéder à l'URL de l'application correspondant à ce jeton et Laravel émettra un cookie de contournement du mode maintenance sur votre navigateur :

https://example.com/1630542a-246b-4b66-afa1-dd72a4c43515

En accédant à cette route masquée, vous serez alors redirigé vers la route / de l'application. Une fois le cookie émis sur votre navigateur, vous pourrez naviguer normalement sur l'application comme si elle n'était pas en mode maintenance.

Votre secret de mode de maintenance doit généralement être composé de caractères alphanumériques et, éventuellement, de tirets. Vous devez éviter d'utiliser des caractères ayant une signification particulière dans les URL telles que ?.

Désactivation du mode maintenance

Pour désactiver le mode maintenance, utilisez la commande up:

php artisan up

Vous pouvez personnaliser le modèle de mode de maintenance par défaut en définissant votre propre modèle sur resources/views/errors/503.blade.php.

Mode de maintenance et files d'attente

Pendant que votre application est en mode maintenance, aucune tâche en file d'attente ne sera traitée. Les travaux continueront d'être traités normalement une fois que l'application aura quitté le mode de maintenance.