Comment vérifier l'environnement de votre application Laravel
Découvrez les différentes méthodes pour tester si votre application Laravel s'exécute en production, local ou staging via Blade et PHP.
Il peut arriver, pour diverses raisons, qu’il faille vérifier si on est dans un environnement donné lorsque le code s’exécute. Tout commence généralement dans votre fichier .env via la variable APP_ENV.
Je vous partage mes notes sur les différentes façons d’effectuer ce genre de vérification à peu près n’importe où dans votre application Laravel.
Dans les vues Blade
Laravel propose des directives très propres pour gérer l’affichage conditionnel selon l’environnement dans vos templates. Si vous débutez avec cet outil, n’hésitez pas à consulter mon guide pour débuter avec Blade.
La directive @production
Elle permet de n’afficher du contenu qu’en production (APP_ENV=production).
@production
<p>Ce bloc ne sera visible qu'en production.</p>
@endproduction
La directive @env
Elle est plus flexible et permet de vérifier un ou plusieurs environnements spécifiques.
@env(['local', 'staging'])
<p>Ceci ne s'affichera qu'en: APP_ENV='local' ou APP_ENV='staging'</p>
@endenv
Ailleurs dans le code
Pour effectuer ces tests dans vos contrôleurs, services ou middlewares, vous pouvez utiliser la façade App ou le helper app().
Les méthodes expressives (Recommandé)
Depuis les versions récentes, Laravel propose des méthodes très lisibles pour les cas les plus courants :
if (App::isProduction()) {
// Uniquement en production
}
if (App::isLocal()) {
// Uniquement en local
}
La méthode générique environment
Pour tester des environnements personnalisés ou plusieurs à la fois :
if (App::environment(['local', 'staging'])) {
// Ce code ne s'executera qu'en local et staging
}
if (app()->environment('testing')) {
// Spécifique aux tests automatisés
}
Ces vérifications sont essentielles pour éviter d’exécuter des scripts de débogage ou d’envoyer de vrais e-mails lors de vos phases de développement.