Централизация констант в проекте Laravel

В проекте мне часто нужно работать с константами, и я никогда не поддерживаю их жесткое кодирование, например

if (status === 2) { // do something }

Итак, мне нужно централизовать эти константы, чтобы я мог дать им читаемое имя, например STATUS_SUCCESS, и использовать константу по всему проекту.

Мой первый вопрос: как лучше всего создать, разместить и использовать их в проекте Laravel?

Я вижу, как люди создают папку Enums внутри приложения и создают соответствующий интерфейс внутри.

interface Ticket {
const STATUS_OPEN = 1;
}

//Use like
if (status === Ticket::STATUS_OPEN) {// do something}

И второй вопрос: насколько эффективен и актуален этот подход enum и почему?
Спасибо.

-1

Решение

Я хотел бы предложить вам создать файл с именем constants.php в config Папка и определить ваши константы там и использовать их во всем приложении, используя 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;
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector