【问题标题】:Where to store various configuration parameters in Symfony 3.4Symfony 3.4 中各种配置参数的存储位置
【发布时间】:2018-05-31 20:09:41
【问题描述】:

是否有存储各种配置参数(如邮政编码长度、姓氏最小长度等)的最佳做法?

我想要一个带有静态函数和属性的 php 类,我可以在项目的任何地方使用它。

【问题讨论】:

    标签: symfony symfony-3.4


    【解决方案1】:

    您正在寻找参数服务。

    在刚刚发布的 Symfony 4.1 中默认为:https://symfony.com/blog/new-in-symfony-4-1-getting-container-parameters-as-a-service

    在旧的 Symfony 中,带有类似的包 https://github.com/Symplify/PackageBuilder/blob/master/README.md#2-all-parameters-available-in-a-service 或自己的实现。很简单:)

    【讨论】:

      【解决方案2】:

      对于 3.* 分支,我发现services.yml 文件是这样做的最佳位置。然后,您可以将这些值注入到需要它的服务中,甚至可以使用

      在您的控制器中访问它们
      $this->getParameter('param_name')
      

      更多信息:见Service Parameters

      【讨论】:

      • 如果我不仅需要服务中的参数怎么办?或者如果我需要更多参数?我应该全部注射吗?我觉得这种方法不太好。
      【解决方案3】:

      在 symfony 最佳实践中,他们建议在 services.yml 中使用更改的参数,如果您永远不会更改此参数,请将该参数放入 Entity 作为 const 或您可以自己创建的某个抽象类中。

      相关文档:

      https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration

      【讨论】:

        【解决方案4】:

        正如其他答案所指出的,您可以使用parameters.yml 文件存储参数。

        但是,对我来说,您要求对实体属性进行限制。如果您使用 Doctrine,您可以使用注释来达到此目的,如文档中所述:https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/annotations-reference.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-04-24
          • 2019-05-25
          • 1970-01-01
          • 1970-01-01
          • 2019-01-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多