rap*_*2-h 12 php laravel composer-php laravel-5
我在Laravel 5(barryvdh/laravel-cors)中使用了全局中间件,但我只希望它在一个环境(dev)上运行.那是因为我只需要在开发环境中使用composer,因此它不会安装在生产环境中.
我注册了它在App Kernel中有一个全局中间件,所以如果我尝试在production(Class 'Barryvdh\Cors\CorsServiceProvider' not found)中部署我的应用程序,我会出错.我知道为什么,但我正在寻找解决方案.
有没有办法在laravel 5中全局声明中间件,但只在一个环境中需要?
我希望它足够清楚,如果不是我可以编辑我的帖子:)
为此,只需在服务提供商中加载内核,然后调用pushMiddleware或prependMiddleware
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot(Kernel $kernel)
{
if ($this->app->environment() === 'dev') {
$kernel->prependMiddleware(ClockworkMiddleware::class);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
到目前为止我发现的最好方法是检查内核中的 env('APP_ENV')
public function __construct(Application $app, Router $router)
{
if (env('APP_ENV', 'production') === 'local') {
$this->prependMiddleware('Clockwork\Support\Laravel\ClockworkMiddleware');
}
parent::__construct($app, $router);
}
Run Code Online (Sandbox Code Playgroud)