php - 只为 Laravel 5 中的一个环境启用全局中间件

标签 php laravel composer-php laravel-5

我在 Laravel 5 (barryvdh/laravel-cors) 中使用全局中间件,但我只希望它在一个环境 (dev) 中处于事件状态。那是因为我只需要它在开发环境中与 Composer 一起使用,所以它没有安装在生产环境中。

我在 App Kernel 中注册了它有一个全局中间件,因此如果我尝试在生产环境中部署我的应用程序,我会遇到错误(Class 'Barryvdh\Cors\CorsServiceProvider' not found)。我知道为什么,但我正在寻找解决方案。

有没有办法在 laravel 5 中全局声明一个中间件,但只在一个环境中需要?

我希望它足够清楚,如果没有我可以编辑我的帖子:)

最佳答案

要实现这一点,只需在服务提供者中加载内核,然后调用 pushMiddlewareprependMiddleware

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/

相关文章:

php - .NET 和 ASP 与 PHP

javascript - 使用 ajax 响应检查复选框

php - Laravel 十进制列索引

laravel - 找不到类 'Pbmedia\LaravelFFMpeg\FFMpeg'

php - 在 Ubuntu 上下载 https ://repo. packagist.org 证书问题时出现 curl 错误 60?

php - symfony 2 - 一对一映射

php - 获取相对于当前查询的类别计数

php - 在 Laravel 中使用助手的最佳实践是什么

php - 是否可以使用 composer 检查系统中是否安装了 npm?

php - Composer 和 Packagist - 如何避免恶意代码注入(inject)