1

在我需要部署我的 symfony 5.2.4 应用程序的服务器上,数据库配置在一个 ini 文件中定义,该文件的路径设置为环境变量。

我现在所做的方法是运行composer dump-env devthen in .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 值),并且每当我需要重新转储我的环境时,我都需要读取该自定义代码。

我还没有找到在我的 symfony 应用程序中添加这个 ini 文件解码过程的合适位置,所以我正在寻找有关正确方法的任何建议,以一种可版本化的方式。

4

1 回答 1

1

您可以在 php 中编写您的学说配置,您将可以访问环境变量。您可以在“config/packages/prod/doctrine.php”中添加您的逻辑。文档中的示例显示了如何设置doctrine.dbal.url转到此处并单击示例代码的 php 选项卡:https ://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables

于 2021-03-18T08:46:45.227 回答