Я обнаружил, что мне нужно перенести некоторые функции на сервисный уровень. В данном конкретном случае это относится к примеру относительно zend-paginator.
В примере сервисный уровень — это просто промежуточный этап между контроллером и моделью. Похоже, что это предполагаемая роль, и при определенных обстоятельствах это кажется логичным.
Хотя это вызывает у меня несколько вопросов.
Во-первых, нельзя ли было так же легко перенести пример кода службы на контроллер без каких-либо реальных штрафов, и не принесет ли это мне пользу, удалив слой кода?
Если предположить, что перемещение кода на сервисный уровень дает ощутимую выгоду, что тогда произойдет с остальной частью моего взаимодействия с картографом? Получает ли контроллер доступ к сервисному уровню для одних задач и к мапперу для других, или же сервисный уровень становится прокси для всех взаимодействий с маппером?
Похоже, что для таких вещей, как создание новой строки из формы, сервисный уровень не добавляет никакой ценности, поэтому это буквально равнозначно сквозной функции на уровне сервисного уровня.
Использование его для некоторых задач, похоже, усложнит ситуацию позже, в то время как использование его в качестве прокси-сервера похоже на то, что мы намеренно вводим репликацию и сложность кода.
Любое разъяснение по «наилучшей практике» было бы очень полезным.