从 ini 文件配置 symfony 数据库连接?
Configure a symfony database connection from ini file?
在我需要部署 symfony 5.2.4 应用程序的服务器上,数据库配置在一个 ini 文件中定义,该文件的路径设置为环境变量。
我现在的做法是 运行 composer dump-env dev
然后在 .env.local.php
中添加一些代码来加载 ini 文件,解析它,然后构建我的数据库 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,我都需要 readd该自定义代码。
我还没有找到在我的 symfony 应用程序中添加此 ini 文件解码过程的合适位置,因此我正在寻找有关以可控制版本的方式正确执行此操作的任何建议。
您可以在 php 中编写您的学说配置,您将可以访问环境变量。您可以在“config/packages/prod/doctrine.php”中添加您的逻辑。文档中的示例显示了如何设置 doctrine.dbal.url
转到此处并单击示例代码的 php 选项卡:https://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables
在我需要部署 symfony 5.2.4 应用程序的服务器上,数据库配置在一个 ini 文件中定义,该文件的路径设置为环境变量。
我现在的做法是 运行 composer dump-env dev
然后在 .env.local.php
中添加一些代码来加载 ini 文件,解析它,然后构建我的数据库 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,我都需要 readd该自定义代码。
我还没有找到在我的 symfony 应用程序中添加此 ini 文件解码过程的合适位置,因此我正在寻找有关以可控制版本的方式正确执行此操作的任何建议。
您可以在 php 中编写您的学说配置,您将可以访问环境变量。您可以在“config/packages/prod/doctrine.php”中添加您的逻辑。文档中的示例显示了如何设置 doctrine.dbal.url
转到此处并单击示例代码的 php 选项卡:https://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables