Я только что прочитал документацию по конфигурации Laravel 5, основанную на вашей среде http://laravel.com/docs/5.0/configuration#environment-configuration
Я понимаю, как файлы .env можно использовать для настройки некоторых переменных, но как мне настроить, какие поставщики услуг загружаются в зависимости от среды?
Например, в моей «локальной» среде я использую этот плагин debugbar, которому нужен поставщик услуг, но я не хочу определять его в config / app.php для производства.
В Laravel 4.2 я мог просто создать config / local / app.php, но это больше не работает, какая альтернатива?
Я полагаю, что если вы установите для 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 и можете начинать.
У меня есть некоторые дополнительные условия и больше сред, поэтому этот точный код не тестируется, но он должен работать, и вы должны понять.
Береги себя.
Эта статья была полезна для меня:
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');
}
}
}