0

私は2.プラグインは、このようなものである のZend Frameworkでのルートの一致を公開する設定にビュープラグインをしようとしている:Zend Framework 2でビュープラグインを設定する最も良い方法は何ですか?

class GetRouteMatch extends AbstractHelper 
{ 
    /** 
    * Route match returned by the router. 
    * 
    * @var RouteMatch. 
    */ 
    protected $routeMatch; 

    /** 
    * Set route match returned by the router. 
    * 
    * @param RouteMatch $routeMatch 
    * @return self 
    */ 
    public function setRouteMatch(RouteMatch $RouteMatch) 
    { 
     $this->routeMatch = $RouteMatch; 
     return $this; 
    } 

    public function __invoke($param) 
    { 
     return $this->routeMatch->getParam($param, false); 
    } 
} 

セットアップするための最良の方法は、RouteMatchオブジェクトとは何ですか? 私はモジュールのブートストラップまたはコントローラでそれを行う必要がありますか?私はRouteMatchオブジェクトを手動で注入され、コントローラのアクション

$renderer = $this->getLocator()->get('Zend\View\Renderer\PhpRenderer'); 
$routeMatch = $renderer->plugin('routeMatch'); 
$routeMatch->setRouteMatch($this->getEvent()->getRouteMatch()); 

の内側に、この方法では解決しました..しかし、私は最善を初期化することでより良い方法

+0

私はこれがエレガントな方法の1つだと思います。 –

答えて

0

があります確信している瞬間のために

あなたのモジュールクラスのそのようなコード。そこにイベントを添付して、ルートマッチなどの依存関係を注入することができます。ただし、すぐに注射できるようになります。サービス・ロケータでのルート・マッチを設定する作業が進行中です。つまり、DIを設定すると、サービス・ロケータからルート・マッチがプルされます。そうすれば、あなたはもうこれらのことを自分で書く必要はありません。

+0

良い、ありがとう。私は新しいベータ版がそれを自動化するのを待つつもりです – seltzlab

関連する問題