Первый вариант - в виде примитива.
При обращении легче читать, но в то же время названия должны включать 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?
Поделитесь, пожалуйста, мнением. Хранение в БД сейчас не рассматриваем.