Dah*_*hab 6 php constants symfony
也许有些人会认为这个问题很愚蠢,但事实并非如此.我问Constant应该在Symfony2 Bundle中应该存在哪些,我在其他框架中用于在模型中创建我的常量变量,但是因为在Symfony2中我使用的是Entity,我有点困惑.
它应该住在里面=>实体,控制器,服务甚至配置文件.
fer*_*tor 14
我就像使用Entity Constats简单的关系一样.比方说,例如,您调用的实体属性status只能包含0-2之间的值.status在这种情况下,额外的实体可能过度,所以我只需将它们定义为constants:
class Entity {
const STATUS_PUBLIC = 0;
const STATUS_WAITING = 1;
const STATUS_REJECTED = 2;
}
Run Code Online (Sandbox Code Playgroud)
它允许您status通过比较常量来简单地检查:
$entity->getStatus() == Entity::STATUS_PUBLIC
Run Code Online (Sandbox Code Playgroud)
甚至在树枝上:
entity.status == constant('STATUS_PUBLIC', entity)
Run Code Online (Sandbox Code Playgroud)
或者在QueryBuilder:
$builder->andWhere('status = :status')
->setParameter('status', Entity::STATUS_PUBLIC)
Run Code Online (Sandbox Code Playgroud)
事实证明它对我来说非常有效.
正如其他答案指出的那样,绝对应该避免全局常数.使用参数.
由于似乎不清楚何时使用Parameters:
摘自官方最佳实践:
不需要为您永远不会配置的值创建配置选项.
如果这些值发生变化,您可以考虑使用参数.一个例子是您的应用程序在多个环境中运行.使用参数将使您能够在不更新代码库的情况下适应环境变化.
我认为没有一个存储常量变量的好地方。相反,这取决于这个常量变量的含义:如果它与实体相关,那么它应该是实体的常量;如果它与实体相关,那么它应该是实体的常量;如果这是特定于服务的,那么它应该是服务的常量。
应该避免的一件事是将常量放入配置文件中,除非它会经常更改,如Symfony 最佳实践中所述
| 归档时间: |
|
| 查看次数: |
11488 次 |
| 最近记录: |