2

このチュートリアルに従おうとしましたが、うまくいきません:

http://weerophinney.net/matthew/archives/246-Using-Action-Helpers-To-Implement-Re-Usable-Widgets.html

説明どおりにすべてを実行しましたが、コントローラーで使用できるようにする方法がわかりません。私のファイルシステムは次のようになります。

- application
    - controllers
        - IndexController.php
    - modules
        - user
            - configs
                user.ini
            - controllers
            - forms
                Login.php
            - helpers
                HandleLogin.php
            - views
                - scripts
                    login.phmtl
                    profile.phtml
            Bootstrap.php
    - views

IndexController で HandleLogin ヘルパーを使用するにはどうすればよいですか? 私は本当にわからず、1日以上試してみて、PCを窓から投げ出したいところです;)。だからどんな助けでも大歓迎です!

4

2 に答える 2

2

ウィジェット プラグインがどこにも呼び出されていないようです。

いくつか確認すること:

  1. モジュール用のファイルBootstrap.phpはありますか?

  2. このブートストラップ ファイルには_initWidgets()メソッドがありますか?

  3. このメソッドは次を呼び出しますか:

    $widget = new Module_Widget_Name; // is it callable?
    Zend_Controller_Action_HelperBroker::addHelper($widget);

  4. ウィジェットリソースを登録しましたか?

    public function _initResourceLoader()
    {
    $loader = $this->getResourceLoader();
    $loader->addResourceType('helper', 'helpers', 'Helper');
    $loader->addResourceType('widget', 'widgets', 'Widget');

     return $loader;
    

    }

  5. 行がapplication.ini含まれていresources.modules[] =ますか?

于 2010-10-22T10:59:14.920 に答える
0

あなたはそうしない。チュートリアルのポイントは、特定のコントローラーから独立して実行される再利用可能なウィジェットを作成することです。アプリケーションがリクエストを受け取ると、そのディスパッチ サイクルを実行し、preDispatch でアクション ヘルパーを自動的にトリガーします。

それでは、アクション ヘルパー自体を見てみましょう。アクション ヘルパーは、init() (新しいコントローラーに渡されるたびにヘルパー ブローカーによって呼び出される)、preDispatch() (コントローラーの preDispatch() フックを実行し、アクション自体を実行する前に呼び出される) のフックを定義できます。 、および postDispatch() (アクションとコントローラーの postDispatch() ルーチンの後に実行されます)。

ヘルパーは現在のコントローラー (そのリクエストに対応するコントローラー) をフェッチして View インスタンスを取得し、フォームで構成します。

于 2010-10-20T15:34:55.213 に答える