2014-12-04 2 views
1

Я пытаюсь создать приложение, использующее сторонний 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']; 

} 

Если кто-нибудь может дать представление о том, как я могу разрешить эту ситуацию, я бы очень оцените помощь. Заранее спасибо!

+0

Задайте переменную внутри конструктора не в декларации. Поскольку эти переменные не могут быть установлены с переменным значением. См. Ответ. –

ответ

1

Моим решением было бы установить это значение внутри конструктора. Вот так;

<?php 

class Service { 
    protected $new_property; 

    public function __construct(){ 
     $this->new_property = $_ENV['NEW_PROPERTY']; 
    } 
} 
Смежные вопросы