Настроить соединение с базой данных Symfony из ini файла?

На сервере мне нужно развернуть приложение symfony 5.2.4, конфигурация базы данных определена в ini-файле, для которого путь задан как переменная среды.

То, как я сделал это прямо сейчас, - это запустить composer dump-env dev затем в .env.local.php, добавьте код для загрузки inifile, проанализируйте его, затем создайте URL-адрес моей базы данных и установите для DATABASE_URL это значение следующим образом:

      $inifile = parse_ini_file($_SERVER["DB_INI_PATH"]);
$databaseurl = 'mysql://'.$inifile["user"].':'.$inifile["password"].'@'.$inifile["host"].':'.$inifile["port"].'/'.$inifile["db"];

Но это означает, что у меня есть код в этом файле, для которого нельзя управлять версиями (потому что он также содержит мое значение APP_SECRET), и каждый раз, когда мне нужно перенаправить свой env, мне нужно будет прочитать этот настраиваемый код.

Я не нашел подходящего места, чтобы добавить этот процесс декодирования ini-файла в свое приложение symfony, поэтому я ищу какие-либо советы о том, как это сделать, чтобы можно было версии.

1 ответ

Вы можете написать свою конфигурацию доктрины на php, и у вас будет доступ к переменным среды. Вы можете добавить свою логику в "config / packages / prod / doctrine.php". Пример в документации показывает, как установить doctrine.dbal.urlперейдите сюда и щелкните вкладку php, чтобы просмотреть пример кода: https://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables

Другие вопросы по тегам