2011-12-18 4 views
-2

コントローラー内の1つのアクションに対してのみプラグインを開始する最も良い方法は何ですか?Zend Framework - プラグイン

補足:ここで

は、コードのスニペットですが、私は私はあなたが

をズートためのコードのこの作品は、参考になることを願っていますIndexController

にtestActionため
class MyApp_Plugin_MyPlugin extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     print 'hello world'; 
    } 
} 

をこのプラグインを実行したいです

よろしく

+1

ここで役立つコードや、達成しようとしていることの説明があります。 – Zoot

答えて

2

あなたは

直接プラグインを呼び出すことができます
public function someAction() 
{ 
    // The action in the controller you want the plugin to run 

    $p = new Application_Plugin_Something(); 
    $p->doSomething(); 
} 

か、単に正しいモジュールで「デフォルト」を置き換え、「コントローラ」と「TheAction」、ブートストラップに登録して、プラグインのコードで

class Application_Plugin_Example extends Zend_Controller_Plugin_Abstract 
{ 
    public function preDispatch(Zend_Controller_Request_Abstract $request) 
    { 
     $module  = $request->getModuleName(); 
     $controller = $request->getControllerName(); 
     $action  = $request->getActionName(); 

     if ($module != 'default' && $controller != 'TheController' && $action != 'TheAction') { 
      return; 
     } 

     // plugin code here... 
    } 
} 

// in bootstrap 

Zend_Controller_Front::getInstance() 
         ->registerPlugin(
          new Application_Plugin_Example() 
         ); 

実行されているかを確認するには、プラグインのチェックを持っていますコントローラーとアクションを使用してプラグインを実行します。