Environment specific Service Providers and Facades in Laravel

I often work with 3rd party app in my Laravel Projects, some of them are for example barryvdh/laravel-debugbarbarryvdh/laravel-translation-manager or aaronlord/laroute.

Now I show you how you can load only specific facades an service providers for development.

Let’s build this up.

In Laravel there is a .env file which has a variable called  APP_ENV .  That’s exactly what we need. If the value is ‘local’ we are in development if its ‘testing’ or ‘production’ we are naturally not (More about environments in Laravel).

Create a new ServiceProvider called  LocalEnvironmentServiceProvider with artisan:

Then extend it like the following example (change the namespace for your app):

Notice: The service provider use the following syntax to check if we are in development.

Now you just have to add this Service Provider in your app.php under providers and…

…thats it! Now if you want to use a serivce provider or a facade alias only in dev add it to the LocalEnvironmentServiceProvider.


Leave a Reply

Your email address will not be published. Required fields are marked *