2017-03-28 7 views
0

ZF3のビューヘルパーからカスタムプラグインを呼び出す方法はありますか?ビューヘルパーからカスタムプラグインを呼び出す

ZF3によれば、ヘルパーの工場は私によって作成されます。

ZF2では、これをプラグインと呼びます。

$ecommercePlugin = $this->getServiceLocator() 
->get('ControllerPluginManager') 
->get('CustomPlugin'); 

serviceLocatorがZF3から削除されたので、プラグインを呼び出す方法は?

編集 module.config

'view_helpers' => array(
    'invokables' => array(
     'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
    ) 
), 

MymethodController\CustomPlugin

class CustomPlugin extends AbstractPlugin 
{ 
    //My methods 
} 
+0

問題を修正しましたか?それでも助けが必要なのですか? – SzymonM

+0

@SzymonMヘルプが必要です。お願いします。 –

+0

エラーが発生しますか? '$ this-> customPlugin()'を見たときどうなるのでしょうか? – SzymonM

答えて

0

私はViewHelperManagerCustomPluginの登録をお勧めします。設定に関する情報はZend's Manualにあります。これはどのようにあなたのモジュールのmodule.config.phpが見えることがあり、一般的である。

<?php 
    return [ 
     'controller_plugins' => [ 
      'invokables' => [ 
       'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
      ], 
     ], 
    ]; 

を追加しまうビューヘルパーとして使用するためにそれを登録するには:

<?php 
    return [ 
     'controller_plugins' => [ 
      'invokables' => [ 
       'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
      ], 
     ], 
     'view_helpers' => [ 
      'invokables' => [ 
       'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
      ] 
     ], 
    ]; 

この新しい設定を使用すると、両方のコントローラから$this->CustomPlugin()を呼び出すとすることができます再生回数さて、プラグイン/ビューヘルパーに依存関係を注入する必要がある状況に遭遇するかもしれません。この場合、あなたは単に依存関係を発見し、注入処理しにあなたの設定を変更するファクトリクラスを作成することができます。

<?php 
    return [ 
     'controller_plugins' => [ 
      'factories' => [ 
       'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
      ], 
     ], 
     'view_helpers' => [ 
      'factories' => [ 
       'CustomPlugin' => \MyMethod\Controller\Plugin\CustomPlugin::class 
      ] 
     ], 
    ]; 

今すぐプラグイン/ビューヘルパーが呼び出されたとき、工場は目的のクラスを実行し、組み立てます。ご質問がある場合はお知らせください。設定には多くの柔軟性があり、具体的な要件やCustomPluginクラスの例があり、Module.php/module.config.php設定は、あなたが探しているもののより正確な例を提供することができます。

+0

あなたの提案としてプラグインを設定しました。しかし、私のために働いていない。エラー>未定義メソッドへの呼び出し :: CustomPlugin() –

+0

プラグインクラスと設定を投稿できますか? –

+0

私の編集をご覧ください。 –

関連する問題