Symfony4处理参数配置设置的正确方法

时间:2019-01-31 10:54:04

标签: symfony

我在一家拥有多个Symfony应用程序的公司工作。
我们有一个供应商'CommonBundle'。
该捆绑软件需要为应用特定的所有应用定义一些配置
例如:project_name_prefix / regex_format_for_title

我的问题是: 我应该如何为我的项目提供这种配置?

  • 在services.yml的parameters:部分中放置一个值,并列出所有需要的值
    如果添加了新参数,如何告诉所有应用填充此新参数?
  • 在我的包中放置一个ConfigurationExtension并定义我的树
    然后创建一个config/packages/common_domain.yml文件并添加我的配置?
  • 创建ConfigurationExtension,然后使用'%project_name%'
  • 将值映射到参数

在我的代码中,可以使用参数$this->container->getParameter('...')使用参数,但是使用DI中的ConfigurationExtension,如何获取值?

更新

我的问题的目的是知道何时使用参数值以及何时配置树。
例如,教义字符集如下:

doctrine:
    dbal:
        charset: utf8

不仅仅是使用

这样的参数是有原因的吗
parameters:
    doctrine_dbal_charset: utf8

然后是$this->container->getParameter('doctrine_dbal_charset')

1 个答案:

答案 0 :(得分:0)

此问题对official Symfony documentation有详细的答案。

官方建议的方法是使用环境变量或.env文件,并在参数中将这些变量引用为%env(VARIABLE_NAME)%