2014-12-04 150 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']; 
    } 
}