Я использую Symfony в Mac OS X Yosemite, и я хочу установить переменную окружения, чтобы получить информацию о моей базе данных.
Поскольку у меня много проектов, мне нужен способ их отделить. Я сделал следующее:
launchctl setenv SYMFONY__MYPROJECT__DATABASE__NAME test
Затем в своем проекте я сделал следующее:
doctrine:
dbal:
connections:
default:
dbname: %myproject.database.name%
Когда я пытаюсь запустить свою страницу, я получаю следующую ошибку:
You have requested a non-existent parameter "myproject.database.name%
Затем я сказал, может быть, я должен использовать экспорт вместо launchctl
export SYMFONY__MYPROJECT__DATABASE__NAME=test
Но даже после перезагрузки ошибка осталась прежней. Я использую MAMP PRO, я не знаю, может ли быть ссылка с ним.
Изменить 1: Я искал результат phpinfo()
а также php -i
и переменная появляется в $_ENV[]
, Когда я отлаживаю, действительно похоже, что переменные окружения не объединены с переменными с сервера … https://github.com/symfony/symfony/issues/10208
Я могу решить проблему, выполнив то, что fabpot сделал как исправление в app_dev.php
:
$_SERVER = array_merge($_SERVER, $_ENV);
но это не совсем то, что я хочу — изменить app_dev.php для чего-то, что Symfony должен делать.
Задача ещё не решена.
Других решений пока нет …