我在 Laravel 5 (barryvdh/laravel-cors) 中使用全局中间件,但我只希望它在一个环境 (dev) 中处于事件状态。那是因为我只需要它在开发环境中与 Composer 一起使用,所以它没有安装在生产环境中。
我在 App Kernel 中注册了它有一个全局中间件,因此如果我尝试在生产环境中部署我的应用程序,我会遇到错误(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);
}
}
}
关于php - 只为 Laravel 5 中的一个环境启用全局中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28452814/