在项目中,我经常需要处理常量,而我从不支持像这样对它们进行硬编码
if (status === 2) { // do something }
因此,我需要集中这些常量,以便为它们赋予一个易于读取的名称,例如STATUS_SUCCESS,并在整个项目中使用该常量。
我的第一个问题是,在laravel项目中制作,放置和使用它们的最佳方法是什么?
我看到人们在应用程序内创建一个Enums文件夹并在其中建立相关界面。
interface Ticket {
const STATUS_OPEN = 1;
}
//Use like
if (status === Ticket::STATUS_OPEN) {// do something}
第二个问题是,此枚举方法的有效性和相关性为何?为什么? 谢谢。
答案 0 :(得分:1)
我建议您在config
文件夹中创建一个名为 constants.php 的文件,并在其中定义常量,并使用config在整个应用程序中使用它们。该文件的内容将是
return [
'options' => [
'option_attachment' => '13',
'option_email' => '14',
'option_monetery' => '15',
'option_ratings' => '16',
'option_textarea' => '17',
]
];
并使用以下代码访问它们
Config::get('constants.options');
// or if you want a specific one
Config::get('constants.options.option_attachment');
为简单起见,请勿制作嵌套的常量数组。
然后我认为最好的方法是用常量创建一个类
class Constant
{
const DRAFT = 1;
const PUBLISHED = 2;
const DELETED = 3;
}
您将使用:
echo Constant::DRAFT;