Я немного запутался в суффиксе имени Manager и Service.
Насколько я понимаю разницу, Managers отвечают за обработку (создание, извлечение, удаление,...) определенных типов объектов. Например, ModuleManager отвечает за загрузку и возврат Modules. В этом случае вы заботитесь о фактической сущности, Module.
Однако Services являются классами, которые предоставляют интерфейсы для выполнения типов цетенов логики процесса. Например, a LogService отправляет данное сообщение журнала определенному журналиру. Вам все равно, куда оно идет и что он делает, вы просто хотите, чтобы администратор был проинформирован о том, что только что произошло.
Теперь ZF2 предоставляет ServiceManager, который создает и возвращает экземпляры заданного Service. Я случайно привык к созданию Managers и предоставлению factory для ServiceManager, чтобы вы могли получить доступ к Manager с помощью $this->getServiceLocator()->get('managerName'); в контексте Controller, чтобы держать контроллеры маленькими и реальную логику в проверяемые классы. Это та часть, которая меня путает прямо сейчас, потому что, очевидно, не может быть рекомендовано извлечь Managers с помощью ServiceLocator. НО: Я не единственный, кто это делает: модуль Doctrine ORM является еще одним примером для этого: он регистрирует EntityManager как doctrine.entitymanager.orm_default Service по умолчанию.
Я получаю истинную разницу между Services и Managers неправильно? Есть ли разница? Возможно ли Managers унаследовано от Services в концепции?