2014-12-04 163 views
1

不工作,我想建立一个使用第三方API的工具软件和正在使用.env.local.php文件来存储敏感信息。直到我将另一个属性添加到$ _ENV superglobal中时,我没有任何问题。除了最近添加的属性外,我仍然可以访问$ _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']; 

} 

如果任何人都可以提供我如何能解决这个问题的见解,我将不胜感谢帮助。提前致谢!

+0

在构造函数中设置变量不在声明中。由于这些变量不能用变量值设置。见答案。 – 2014-12-04 10:11:07

回答

1

我的解决办法是设置在构造函数中这个值。像这样;

<?php 

class Service { 
    protected $new_property; 

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