0

ユーザーのログインをチェックし、サイト全体でナビゲーションなどを取得するコード スニペットがあります。私はいくつかのコントローラーを持っていますが、そのスニペットをそれらすべてに入れたいと思っています。何かを変更するたびに、それらすべてを一度に 1 つずつ変更するのにうんざりします。私の他のプロジェクトの1つで、この部分を使用して他のコントローラーに何らかの形で拡張されているのを見ました

class MyController extends Zend_Controller_Action

そして、それは次のように見えました

class MyController extends MySnippet_Controller_Action

またはそのようなもので、うまくいきました。しかし、それを機能させることはできません。

4

1 に答える 1

0

あなたが探しているのは、おそらく init() またはおそらく predispatch() に対して登録された frontcontroller プラグインです。Zend Framework では Zend_Controller_Action を拡張することは嫌われており、実際には通常は必要ありません。

これらのリソースは、必要なプラグインの開発に役立つ場合があります。

ZF プラグインを理解するpt 1
ZF プラグインを理解する pt 2

もちろん、リファレンスマニュアルセクション

プラグインの基本的な形式は次のとおりです。

class My_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract
{

    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        parent::preDispatch($request);
        //truncated
    }
}
于 2012-08-18T09:07:57.460 に答える