0

我在 中定义了一个服务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并将其注入工厂,这是我的服务需要的?

4

1 回答 1

1

好的,经过一些调试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']);
    }
}
于 2016-09-03T21:44:37.827 回答