Есть сервис (предположим StaticList), где хранятся всякие списки параметров, к примеру:
public static function getCommissions()
{
$list = [
[
'key' => self::COMMISSION_NO_PROXY,
'name' => self::$translator->trans('_No proxy phone, no commission_'),
'projects' => ['all']
],
[
'key' => self::COMMISSION_ANSWERS,
'name' => self::$translator->trans('_Commission_'),
'projects' => ['1']
],
];
return $list;
}
там в качестве значения key - константы, которые иногда в контролерах достаются и сверяются, поэтому оно статик.
В некоторых моделях я использую методы, вроде getCommissionText, которые возвращают уже не ключ, записанный в базе, а по ключу достают текстовое значение из этого сервиса. Соответственно единственный способ достучаться до сервиса из сущности (модели), это статичный вызов метода, вроде StaticList::getTextForKey($this->commission_key)
Есть у меня стойкое ощущение, что я творю дичь и можно как-то корректнее организовать эту схему, т.к. много проблем возникает из-за статичных вызовов этого сервиса (например конструктор не вызывается, соответственно нет интерфейса translator из-за этого).
Резюмирую:
Должен быть файл с листингом параметров, их переведенных (локализованных) названий и должен быть способ из модели (сущности) легко доставать сразу текстовое локализованное значение параметра.
Как бы вы решили эту задачу?