2016-09-03 8 views
0

나는 config/autoload/global.php에 이런 식으로 정의 내 mail 설정을 주입 Module.php에 정의 된 서비스가 있습니다ZF3를 주입 부분

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은 다음과 같습니다

,561을

그러나 내 서비스에서 필요로하는 global.php에 정의 된 설정을 검색하고 공장에서 주입하려면 어떻게해야합니까?

답변

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']); 
    } 
}