Как получить параметр среды в контроллере в Symfony 3.4? - PullRequest
0 голосов
/ 14 мая 2018

В среде dev приложения Symfony 3.4 я пытаюсь сохранить учетные данные в качестве переменных среды. Я не могу заставить его работать, и я не могу понять, чего не хватает. Вот что у меня есть:

В app\config\.env У меня определен ключ API, например:

GOOGLE_DEVELOPER_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

В app\config\services.yml У меня есть:

parameters:
    google.developer.key: "%env(GOOGLE_DEVELOPER_KEY)%"

В одном из моих контроллеров я хочу передать этот параметр объекту так:

    $client = new \Google_Client();
    $client->setDeveloperKey($this->getParameter('google.developer.key'));

Для меня эта установка выглядит нормально, но когда я пытаюсь ее запустить, я получаю EnvNotFoundException со следующим сообщением:

Переменная среды не найдена: "GOOGLE_DEVELOPER_KEY".

Когда я вставляю ключ в app\config\services.yml напрямую, он работает просто отлично:

parameters:
    google.developer.key: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

(Но это не то, чего я хочу, по разным причинам.)

Я очистил кэш dev, перезапустил веб-сервер, прочитал соответствующую документацию Symfony (я думаю), но не повезло. Я предполагаю, что пропускаю шаг, но я не могу понять, что это будет. Любые советы будут оценены.

Ответы [ 3 ]

0 голосов
/ 14 мая 2018

Symfony 3.4 автоматически не загружает файл .env.Вы должны изменить app_dev.php, чтобы загрузить файл:

use Symfony\Component\Dotenv\Dotenv;
...
$dotenv = new Dotenv();
$dotenv->load(__DIR__.'/../app/config/.env');
0 голосов
/ 14 мая 2018

Зачем инициализировать Google_Client в вашем контроллере и не использовать сервисный контейнер?

См .: https://symfony.com/doc/3.4/service_container.html

Вы можете передать этот ключ разработчика в массиве с ключом developer_key в конструкции.

0 голосов
/ 14 мая 2018

Документация Symphony v3.4 по переменным среды рекомендует использовать веб-сервер для настройки переменных среды.

Я не смог проверить это, так как моя установка - Symfony v4, и для настройки переменных среды используется файл /.env.

Надеюсь, это поможет каким-то образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...