@lexstile

Как лучше хранить константы в классе?

Первый вариант - в виде примитива.
При обращении легче читать, но в то же время названия должны включать base name - в текущем случае это PAYMENT_TYPE.
const PAYMENT_TYPE_CASH = 1;
    const PAYMENT_TYPE_NON_CASH = 2;
    
    # использование
    Order::PAYMENT_TYPE_CASH

Второй вариант - в виде массива.
В этом случае немного снижается читаемость, но можно хранить более простые названия и без повторов.
const PAYMENT_TYPES = [
        'CASH' => 1,
        'NON_CASH' => 2,
    ];

    # использование
    Order::PAYMENT_TYPES['CASH']


Какой вариант выбрать?
Возможно, нужно создавать какой-то сервисный класс, аля, PaymentType и хранить константы в нем или ENUM?
Поделитесь, пожалуйста, мнением. Хранение в БД сейчас не рассматриваем.
  • Вопрос задан
  • 225 просмотров
Решения вопроса 2
New_Horizons
@New_Horizons
Бред:
А чего бы енам встроенный в пхп не искользовать?

https://www.php.net/manual/ru/language.types.enume...
https://www.php.net/manual/ru/language.enumeration...
Ответ написан
Комментировать
REZ1DENT3
@REZ1DENT3
web-developer
Первый вариант. Во втором случае большая вероятность допустить ошибку в имени ключа без стат.анализа (psalm,phpstan).
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы