← Retour à l'accueil
laravel php productivity

Comment vérifier l'environnement de votre application Laravel

Publié le 08/09/2022

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

Lien vers la documentation

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.