2016-09-03 17 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の道をやりたいです

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

そして、私のMailServiceFactory.phpは次のとおりです:

(私が学んでいるので、私は私の module.config.phpでこのように私のサービスを定義しWICH

しかし、global.phpで定義された私の設定を調べて、私のサービスに必要な工場で注入するにはどうすればいいですか?

答えて

1

OK、デバッグ後にvar_dump()を付けました。私は$container->get('configuration')のおかげでconfigアレイにアクセスできます。だから今私の工場は:

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