This is because, for configuration, ZF2 ServiceManageris used by default initializersfor services that implement ServiceManagerAwareInterfaceor ServiceLocatorAwareInterface.
You can find ServiceManagerAwareInitializer, and ServiceLocatorAwareInitializerin the method . __constructServiceManagerConfig
, initializer. , :
'service_manager' => array(
'invokables' => array(
),
'factories' => array(
'translator' => 'My\Factory\TranslatorFactory'
),
'initializers' => array(
'translator' => function($service, ServiceLocatorInterface $serviceLocator) {
if ($service instanceof TranslatorAwareInterface) {
$translator = $serviceLocator->get('translator');
$service->setTranslator($translator);
}
}
)
)
, translator ServiceManager, . My\Factory\TranslatorFactory.
initializers ZF2 ServiceManager.
, initializer , .