ZF3

2

でモジュールの設定を取得します。私は、検索3. Zend Frameworkの中で、コントローラからの私のモジュール構成を取得したいのですが、ZF2でこれを行うための標準的な方法は、ZF3

$this->getServiceLocator() 
を使用しているようです

を入力してmodule.config.phpの設定にアクセスします。 しかし、getServiceLocator()メソッドがないので、これはZF3では機能しません。

これを達成するための標準的な方法は何ですか?

+0

このための解決策がたくさんあります。あなたのコードを分かち合うことができますか? – tasmaniski

答えて

1

サービスマネージャを使用して依存関係を注入する必要があります。 基本的に2つのクラスコントローラControllerFactoryを作成して、すべての依存関係を持つコントローラを作成する必要があります。

2

答えが見つかったかどうかはわかりません。タスマニスキーが書いたのとは異なる解決策があるためです。念のため、私はZF3と遊ぶために始めたときに私をたくさん助けたであろうものを共有してみましょう:

MyControllerFactory.php

<?php 
namespace My\Namespace; 

use Interop\Container\ContainerInterface; 
use Zend\ServiceManager\Factory\FactoryInterface; 
use DependencyNamespace\...\ControllerDependencyClass; // this is not a real one of course! 

class MyControllerFactory implements FactoryInterface 
{ 
    /** 
    * @param ContainerInterface $container 
    * @param string $requestedName 
    * @param null|array $options 
    * @return AuthAdapter 
    */ 
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null) 
    { 
     // Get config. 
     $config = $container->get('configuration'); 

     // Get what I'm interested in config. 
     $myStuff = $config['the-array-i-am-interested-in'] 

     // Do something with it. 
     $controllerDepency = dummyFunction($myStuff); 

     /*...the rest of your code here... */ 

     // Inject dependency. 
     return $controllerDepency; 
    } 
} 

MyController.php

<?php 
namespace My\Namespace; 

use Zend\Mvc\Controller\AbstractActionController; 
use DependencyNamespace\...\DependencyClass; 

class MyController extends AbstractActionController 
{ 
    private $controllerDepency; 

    public function __construct(DependencyClass $controllerDepency) 
    { 
     $this->controllerDepency = $controllerDepency; 
    } 

    /*...the rest of your class here... */ 
} 
関連する問題