【发布时间】:2018-12-18 15:45:15
【问题描述】:
在一个项目中,我经常需要处理常量,我从不支持像硬编码那样对它们进行硬编码
if (status === 2) { // do something }
因此,我需要集中这些常量,以便我可以给它们一个可读的名称,例如 STATUS_SUCCESS,并在整个项目中使用该常量。
我的第一个问题是,在 laravel 项目中制作、放置和使用它们的最佳方法是什么?
我看到人们在应用程序内创建一个 Enums 文件夹并在其中制作相关界面。
interface Ticket {
const STATUS_OPEN = 1;
}
//Use like
if (status === Ticket::STATUS_OPEN) {// do something}
第二个问题是,这种枚举方法的有效性和相关性如何?为什么? 谢谢。
【问题讨论】:
-
如果它们对不同的模型有不同的含义,则不应共享它们。在您的用户状态和票证状态示例中,
1可以表示inactive或open- 除非您将其称为STATUS_INACTIVE_OR_OPEN_OR_MAYBE_SOME_OTHER_THING,否则对两者使用相同的常量是没有意义的。跨度> -
这取决于变量的类型,如果它们是静态的,那么你可以使用配置来管理,如果你想在视图之间共享变量,你可以使用视图编辑器。
-
@ceejayoz 他们在任何地方的意思都是一样的。抱歉,我错误地将两个不同的号码用于同一件事。现已编辑。
标签: php laravel interface constants