Как разбить код при множестве ролей в Laravel?

У меня есть 6 ролей и все они имеют отношение к одной сущности - заявки (таблица applications). Сначала 1 роль создаёт завку, потом 2 роль проверяет, потом эту заявку проверяет 3 роль, утверждает 4, ... 6 может просматривать. У каждой роль своя задача.

Сперва я сделал по контроллеру на роль, потом решил разделить. И проверка ролей происходит в маршрутах. Теперь, думаю, нужно всё объединить в один контроллер и внутри метода контроллера (классический ресурс контроллер) проверять роли и раскидать все обработки по сервисам, чтоб контроллер не был слишком объемным.

Что будет лучше в моём положении? Есть ли у кого-нибудь опыт в подобном? Может быть не сервисы использовать, а как-то иначе разбить код? И учитывать, что могут появиться еще роли.

Уточню. Вопрос не в том, как распределять задачи по ролям и опознавать, а в том как написать читаемый, легкорасширяемый код.

Проблемы:

  1. Если на роль по контроллеру,то слишком много контроллеров.
  2. Если все роли в один контроллер, то слишком толстый контроллер, который можно раскидать по сервисам или по другим.

Мне интересен опыт тех, кто уже сталкивался с подобным.


Ответы (0 шт):