ZF3 Injizieren Sie einen Teil der globalen Konfiguration in eine Service-Factory
Posted: 24 Dec 2024, 17:30
Ich habe einen Dienst in Module.php definiert, in den ich meine Mail-Konfiguration einfüge, die in config/autoload/global.php folgendermaßen definiert ist:
Aber ich möchte es auf die ZF3-Art machen (was ich gerade lerne, also habe ich meinen Dienst in meiner module.config.php so definiert:
Und meine MailServiceFactory.php ist:
Aber wie kann ich meine in global.php definierte Konfiguration abrufen und sie in die Factory einfügen, die mein Dienst benötigt?
Code: Select all
public function getConfig()
{
return include __DIR__ . '/../config/module.config.php';
}
public function getServiceConfig()
{
return [
'factories' => [
'Mailer' => function($container) {
return new MailService($this->getConfig()['mail']);
},
]
];
}
Code: Select all
return [
'services' => [
'factories' => [
Service\MailService::class => MailServiceFactory::class
]
],
Code: Select all
class MailServiceFactory implements FactoryInterface
{
public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
{
return new MailService();
}
}