Поставщики услуг конфигурации laravel 5 только для локальных

Я только что прочитал документацию по конфигурации Laravel 5, основанную на вашей среде http://laravel.com/docs/5.0/configuration#environment-configuration

Я понимаю, как файлы .env можно использовать для настройки некоторых переменных, но как мне настроить, какие поставщики услуг загружаются в зависимости от среды?

Например, в моей «локальной» среде я использую этот плагин debugbar, которому нужен поставщик услуг, но я не хочу определять его в config / app.php для производства.

В Laravel 4.2 я мог просто создать config / local / app.php, но это больше не работает, какая альтернатива?

1

Решение

Я полагаю, что если вы установите для APP_DEBUG значение false в вашем файле .env, панель отладки исчезнет автоматически.

Также я написал класс промежуточного программного обеспечения, чтобы позаботиться об этом.

Метод handle может выглядеть так в вашем случае:

public function handle($request, Closure $next)
{
if (app()->environment('production'))
\Debugbar::disable();
else
\Debugbar::enable();

return $next($request);
}

Затем вы просто добавляете его в список промежуточного программного обеспечения в app / Http / kernel.php и можете начинать.

У меня есть некоторые дополнительные условия и больше сред, поэтому этот точный код не тестируется, но он должен работать, и вы должны понять.

Береги себя.

1

Другие решения

Эта статья была полезна для меня:

https://mattstauffer.co/blog/conditionally-loading-service-providers-in-laravel-5

И это то, что я сделал, и это работает:

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
//
}

/**
* Register any application services.
*
* @return void
*/
public function register()
{
if ($this->app->environment('local')) {
$this->app->register('Barryvdh\Debugbar\ServiceProvider');
}
}
}
2

По вопросам рекламы [email protected]