Symfony 5 全局动态配置文件

Symfony 5 global dynamic configuration file

我是 Zend Framework 的长期用户(现在更名为 Laminas)。但我决定尝试最后一个 Symfony 版本。所以我只是在5.1.2安装它。

我遇到了有关多环境部署的问题。在我公司,我们有:

在 ZF-Laminas 中,我们有一个位于配置目录中的 global.php 文件。 对于那些不熟悉此框架的人,您可以通过创建 local.php 文件来覆盖 global.php 文件中设置的键。

在这个全局文件中,我用来为我的应用程序放置标准配置。

例如(产品):

'open_id' => [
   'client_id' => 1234
]

然后,我有开发和暂存文件,这些文件可以覆盖每个环境的这些值。部署时将环境对应的文件复制到local.php.

比方说 staging.local.php.dist 变成 local.php with :

'open_id' => [
   'client_id' => 5678
]

这很好,因为值覆盖了全局文件中的值。

我希望在 Symfony 中有相同的行为,但我在 Symfony 5 中看不到类似的东西。

到目前为止,我只找到了两种可能

我想念什么?还是我的“zend”做事方式不对?

谢谢。

根据我从您的 post 了解到的情况,您的目标是根据您所在的服务器获得不同的配置值。如果是这种情况,您可以使用环境变量(在 .env 文件或服务器特定配置的 .env.local 中)。然后,您可以通过将 env var 绑定到参数来在您的应用程序中使用这些值。然后,通过使用 %parameter_name% 作为值或在容器中,此参数将在配置中可用。您还可以将参数传递给服务(服务定义的处理方式与任何其他配置相同)。有关更多信息,您可以查看这些来源: https://symfony.com/doc/current/configuration/env_var_processors.html https://symfony.com/doc/current/configuration.html

您还可以为每个环境创建 services_%env%.yaml (services_dev.yaml, services_test.yaml) 文件。它将允许您为每个环境定义不同的参数和 override/define 服务。

示例: config/services_dev.yaml

parameters:
    hello: 'world'