ZF3 Внедрить часть глобальной конфигурации в сервисную фабрику

У меня есть служба, определенная в Module.phpгде я вкалываю mail конфиг, определенный в config/autoload/global.php сюда:

public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}

public function getServiceConfig()
{
return [
'factories' => [
'Mailer' => function($container) {
return new MailService($this->getConfig()['mail']);
},

]
];
}

Но я хочу сделать это способом ZF3 (который я изучаю, поэтому я определил свой сервис в моем module.config.php сюда:

return [
'services' => [
'factories' => [
Service\MailService::class => MailServiceFactory::class
]
],

И мой MailServiceFactory.php является:

class MailServiceFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
return new MailService();
}
}

Но как я могу получить свой конфиг, определенный в global.php и залить его на заводе, нужен мой сервис?

0

Решение

ОК, после некоторой отладки и var_dump(), У меня есть это. Я могу получить доступ к массиву конфигурации благодаря $container->get('configuration'), Итак, моя фабрика сейчас:

class MailServiceFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
$config = $container->get('configuration');
return new MailService($config['mail']);
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]