MVC: динамические ссылки действий в представлении: куда поместить бизнес-логику (zend2)
Итак, я довольно новичок в Zend 2 и MVC в целом, и я нахожусь в ситуации, когда я хочу следовать передовым методам, чтобы сделать мой код многократно используемым и легким для понимания.
Конкретный сценарий, с которым я хочу иметь дело, заключается в следующем. Допустим, я пишу редакторское приложение, в котором пользователи могут отправлять статьи, но они должны быть одобрены до публикации. Когда вы открываете статью /article/view/101, вы получаете страницу с информацией о статье на одной стороне (Статус, Автор, Дата, Название, Тело), а на боковой панели вы получаете набор действий.
Набор действий (ссылок) изменяется в зависимости от типа пользователя, просматривающего статью (гость, пользователь, рецензент или администратор), а также в зависимости от состояния статьи (черновик, готово, опубликовано).
Итак, вопрос: где в модели MVC я размещаю бизнес-логику, чтобы решить, какие действия (ссылки) поместить на боковую панель?
- Контроллер не кажется подходящим, потому что я бы добавил туда Business Logic, а также добавил HTML (плохо + плохо)
- Представление также не работает, потому что я бы добавил бизнес-логику.
- Служба, похоже, не работает либо потому, что мне кажется, что я либо добавляю HTML, либо вызываю партиалы оттуда, и этого тоже не следует делать...
Единственное, о чем я мог подумать, - это делать бизнес-логику в сервисе или помощнике (поскольку требуется более одной модели, статья и пользователь) и возвращать "массив" действий (без HTML). Затем представление обрабатывает их, чтобы фактически получить HTML, но я не уверен, так ли это, и хотел некоторый опытный ввод.