2012-04-11 3 views
0

の前にの前にどのコントローラがルーティングされているかを検出する必要があります(したがって、postDispatch()は適切ではありません)。Zend_Controller_Pluginでルーティングされたコントローラを取得します

class PerchProvider extends Zend_Controller_Plugin_Abstract 
{ 
public function routeShutdown(Zend_Controller_Request_Abstract $request) 
{ 
    //if (--CONTROLLERNAME-- != "Error") { 

    include APPLICATION_PATH . '/../public/perch/runtime.php'; 

    // } 
} 
} 

コントローラの名前にはどのようにアクセスできますか?

乾杯

答えて

0

上の方法です。あなたのbootstrap.phpの中

  1. :アプリケーション/コントローラ/ヘルパーで

    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap 
    { 
        protected function _initPerch() 
        { 
         require APPLICATION_PATH . '/controllers/helpers/Perch.php'; 
         Zend_Controller_Action_HelperBroker::getStack()->offsetSet(2, 
           new Application_Controller_Helper_Perch()); 
        } 
    } 
    
  2. /Perch.php:

    <?php 
    
    class Application_Controller_Helper_Perch 
         extends Zend_Controller_Action_Helper_Abstract 
    { 
        public function postDispatch() 
        { 
         $request = $this->getActionController()->getRequest(); 
         $controller = $request->getControllerName(); 
         if ($controller != 'error') { 
          include APPLICATION_PATH . '/../public/perch/runtime.php'; 
         } 
        } 
    } 
    
0

あなたはZendのでパーチを統合している興味深いです!ドキュメントはgetControllerNameによると

はあなたがビューレンダラよりも優先度の高いアクションヘルパーを登録する必要がありZend_Controller_Request_Abstractを継承

+0

おかげで私はそれが修正されません推測それ。リクエストのvarには、 – Jens

+0

というパラメータだけが含まれていますが、間違っていると思います。 ErrorControllerは、行方不明のアクションがルーティングされた後にのみ呼び出されます。私は正しい? :/ – Jens

関連する問題