在中间件内核构造函数

时间:2015-06-19 17:11:02

标签: php laravel-5

似乎在Middleware Kernel constructor()事件中我可以访问env('')帮助器。在.env文件中设置的所有变量都返回null。

为什么会这样?

我实际上想在我的.env中设置一个中间件读取的配置,以便促进本地开发行为。

这就是我在Http \ Kernel

中所做的
public function __construct(Application $app, Router $router)
{
    if (env('check_env_key', false)) {

    }
    parent::__construct($app, $router);
}

1 个答案:

答案 0 :(得分:0)

我在Laravel 5.2应用程序中有同样的事情。我在xdebug的帮助下潜入了代码。

回答你的问题'为什么会发生这种情况'?

如果查看HttpKernel构造函数(它是内核的父级),您会看到尚未加载env值。请参阅xdebug中的$ _ENV容器或转储它。

因此收集你的值(getenv)的php函数将返回false。而且,由于这个错误,Laravel env帮助器将返回默认值。

路线 在routes文件中,$ _ENV容器填充了所有的env值,因此返回了预期的值。

这是一个时间问题。内核中尚未提供预期的行为。这就是为什么......: - )

我认为Laravel在引导应用程序时加载env值,而不是之前。