Я пытаюсь создать приложение, использующее сторонний 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'];
}
Если кто-нибудь может дать представление о том, как я могу разрешить эту ситуацию, я бы очень оцените помощь. Заранее спасибо!
Задайте переменную внутри конструктора не в декларации. Поскольку эти переменные не могут быть установлены с переменным значением. См. Ответ. –