symfony - 从ini文件配置symfony数据库连接?
问题描述
在我需要部署我的 symfony 5.2.4 应用程序的服务器上,数据库配置在一个 ini 文件中定义,该文件的路径设置为环境变量。
我现在所做的方法是运行composer dump-env dev
then 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 文件解码过程的合适位置,所以我正在寻找有关正确方法的任何建议,以一种可版本化的方式。
解决方案
您可以在 php 中编写您的学说配置,您将可以访问环境变量。您可以在“config/packages/prod/doctrine.php”中添加您的逻辑。文档中的示例显示了如何设置doctrine.dbal.url
转到此处并单击示例代码的 php 选项卡:https ://symfony.com/doc/current/configuration.html#configuration-based-on-environment-variables
推荐阅读
- c# - WPF组合框不以双向更新
- python-3.x - 网页抓取:迭代网站的页面,而无需使用 Python 和请求编辑 url
- python - Choropleth 地图没有为国家着色?
- python - 使用 QComboBox 选择显示的不同小部件集
- javascript - 将 div 彼此相邻对齐 CSS(卡片样式)
- mysql - MySQL 错误与 CREATE TABLE
- javascript - 下拉货币选择器
- javascript - 错误 AngularJs:无法读取未定义的属性“then”
- c# - 如何反编译.net dll到项目c# [CompilerGenerated]
- javascript - React/Redux 渲染一个每秒更新的列表