2014-12-04 3 views
1

타사 API를 사용하는 앱을 구축하려고하는데 .env.local.php 파일을 사용하여 중요한 정보를 저장하고 있습니다. $ _ENV superglobal에 다른 속성을 추가 할 때까지는이 방법에 문제가 없었습니다. 최근에 추가 된 속성을 제외하고 $ _ENV의 다른 속성에 계속 액세스 할 수 있습니다. 그러나 응용 프로그램의 다른 부분에서 새 속성에 액세스 할 수 있습니다. 서비스 공급자 클래스에서 "구문 오류, 예기치 않은 '$ _ENV'(T_VARIABLE)"이 throw됩니다. 누군가가 내가이 상황을 해결할 수있는 방법에 대한 통찰력을 제공 할 수있는 경우

<?php 

class Service { 

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

} 

, 나는 크게 것 :

이 내 서비스 제공 더 많거나 내 .env.local.php 이하

<?php 

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

입니다 도움을 주셔서 감사합니다. 미리 감사드립니다!

+0

선언자가 아닌 변수를 생성자 내에 설정하십시오. 이 변수들은 변수 값으로 설정할 수 없으므로 답변을 참조하십시오. –

답변

1

내 솔루션은이 값을 생성자 내에서 설정하는 것입니다. 그렇게.

<?php 

class Service { 
    protected $new_property; 

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