【发布时间】:2018-05-31 20:09:41
【问题描述】:
是否有存储各种配置参数(如邮政编码长度、姓氏最小长度等)的最佳做法?
我想要一个带有静态函数和属性的 php 类,我可以在项目的任何地方使用它。
【问题讨论】:
标签: symfony symfony-3.4
是否有存储各种配置参数(如邮政编码长度、姓氏最小长度等)的最佳做法?
我想要一个带有静态函数和属性的 php 类,我可以在项目的任何地方使用它。
【问题讨论】:
标签: symfony symfony-3.4
您正在寻找参数服务。
在刚刚发布的 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 或自己的实现。很简单:)
【讨论】:
对于 3.* 分支,我发现services.yml 文件是这样做的最佳位置。然后,您可以将这些值注入到需要它的服务中,甚至可以使用
$this->getParameter('param_name')
更多信息:见Service Parameters
【讨论】:
在 symfony 最佳实践中,他们建议在 services.yml 中使用更改的参数,如果您永远不会更改此参数,请将该参数放入 Entity 作为 const 或您可以自己创建的某个抽象类中。
相关文档:
https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
【讨论】:
正如其他答案所指出的,您可以使用parameters.yml 文件存储参数。
但是,对我来说,您要求对实体属性进行限制。如果您使用 Doctrine,您可以使用注释来达到此目的,如文档中所述:https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/annotations-reference.html
【讨论】: