Как правильно внедрить зависимость посредством интерфейса через конструктор класса?
В Module::getServiceConfig() описал factory через класс, реализующий интерфейс Zend\ServiceManager\FactoryInterface:
'factories' => [
'MyModule\Model\RelatedLists\ServiceInterface' => 'MyModule\Model\RelatedLists\Factory\ServiceFactory',
]
Данный вариант сработает, если только создавать сервис через ServiceLocator.
Что сделать, чтобы была возможность внедрить этот сервис посредством его интерфейса в конструкторе класса, к примеру, контроллера?
public function __construct(\MyModule\Model\RelatedLists\ServiceInterface $service) {...}
Как грамотно организовать резолвинг зависимостей, например, как в Laravel, где для этих целей можно выделить ServiceProvider и забиндить(bind/singleton, например) интерфейс на реализацию (abstract => concrete)?