Laravel - $ _ENV不在服务提供商处工作

时间:2014-12-04 10:07:29

标签: php laravel laravel-4

我正在尝试构建一个使用第三方API并使用.env.local.php文件来存储敏感信息的应用。在我将另一个属性添加到$ _ENV超全局之前,我对此方法没有任何问题。除了最近添加的属性,我仍然可以访问$ _ENV的其他属性。但是我可以访问我的应用程序的其他部分中的新属性,除了我需要的服务提供程序类,这会抛出"语法错误,意外的' $ _ ENV'(T_VARIABLE)"

这或多或少是我的.env.local.php

<?php

return array(
    'DB_NAME' => 'placeholder',
    'DB_USER' => 'placeholder',
    'NEW_PROPERTY' => 'test' // Property I can't access in my service provider
);

我的服务提供商:

<?php

class Service {

    protected $new_property = $_ENV['NEW_PROPERTY'];

}

如果有人能够提供有关我如何解决这种情况的见解,我将非常感谢您的帮助。提前谢谢!

1 个答案:

答案 0 :(得分:1)

我的解决方案是在构造函数中设置此值。像这样;

<?php 

class Service {
    protected $new_property;

    public function __construct(){
        $this->new_property = $_ENV['NEW_PROPERTY'];
    }
}