laravel 5 仅限本地的配置服务提供商
laravel 5 configuration service providers for local only
我刚刚根据您的环境阅读了 Laravel 5 配置文档 http://laravel.com/docs/5.0/configuration#environment-configuration
我了解如何使用 .env 文件配置一些变量,但我该如何配置根据环境加载哪些服务提供商?
例如,在我的“'local'”环境中,我使用这个需要服务提供商的调试栏插件,但我不想在 config/app.php 中定义它用于生产.
在 Laravel 4.2 中我可以创建 config/local/app.php 但这似乎不再有效,有什么替代方法?
我相信如果您在 .env 文件中将 APP_DEBUG 设置为 false,调试栏将自动消失。
我还写了一个中间件 class 来处理这个问题。
在您的情况下,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');
}
}
}
我刚刚根据您的环境阅读了 Laravel 5 配置文档 http://laravel.com/docs/5.0/configuration#environment-configuration
我了解如何使用 .env 文件配置一些变量,但我该如何配置根据环境加载哪些服务提供商?
例如,在我的“'local'”环境中,我使用这个需要服务提供商的调试栏插件,但我不想在 config/app.php 中定义它用于生产.
在 Laravel 4.2 中我可以创建 config/local/app.php 但这似乎不再有效,有什么替代方法?
我相信如果您在 .env 文件中将 APP_DEBUG 设置为 false,调试栏将自动消失。
我还写了一个中间件 class 来处理这个问题。
在您的情况下,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');
}
}
}