У меня есть служба, определенная в 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
и залить его на заводе, нужен мой сервис?
ОК, после некоторой отладки и 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']);
}
}
Других решений пока нет …