この記事では、Zend Framework Action Assistant (Zend_Controller_Action_Helper)の使い方を例とともに説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
アシスタントモードを通じて、頻繁に使用されるいくつかの機能モジュールをカプセル化できるため、主にアクション内で必要に応じて柔軟に使用できます。
Zend Framework には、アクション アシスタント (Zend_Controller_Action_Helper) とビュー アシスタント (Zend_View_Helper) の 2 種類のヘルパーがあります。
アクション ヘルパーは、関数 (ランタイムおよび/またはオンデマンド機能) を Zend_Controller_Action 派生アクション コントローラーに即座に追加できるため、パブリック アクション コントローラー関数を追加するときにアクション コントローラー クラスを派生する必要性を最小限に抑えることができます。
アクション ヘルパーは、呼び出す必要があるときにロードされ、要求されたとき (ブートストラップ)、またはアクション コントローラーの作成されたとき (init()) にインスタンス化できます。
関係書類
/library/Zend/Controller/Action/
内│Exception.php
│ HelperBroker.php
│Interface.php
│
§─ヘルパー
│ │ Abstract.php
│ │ ActionStack.php
│ │ AjaxContext.php
│ │ AutoCompleteDojo.php
│ │ AutoCompleteScriptaculous.php
│ │ Cache.php
│ │ ContextSwitch.php
│ │ FlashMessenger.php
│ │ Json.php
│ │ リダイレクター.php
│ │ URL.php
│ │ ViewRenderer.php
│ │
│ └─オートコンプリート
│ Abstract.php
│
└─ヘルパーブローカー
PriorityStack.php
一般的なアクション アシスタントには以下が含まれます:
FlashMessenger は Flash Messenger セッションを処理するために使用されます。
Json は JSON 応答をデコードして送信するために使用されます
URL は URL を作成するために使用されます;
リダイレクターは、プログラムが内部または外部のページにリダイレクトできるようにする別の実装方法を提供します。
ViewRenderer は、コントローラー内でビュー オブジェクトを確立し、ビューをレンダリングするプロセスを自動的に完了します。
AutoComplete は AJAX オートコンプリートに自動的に応答します
ContextSwitch と AjaxContext は、アクションの代替応答形式を提供します
Cache はキャッシュ関連の操作を実装します。
ActionStackはアクションスタックを操作するために使用されます。
1. Zend_Controller_Action
の $_helper メンバーの getHelper() メソッドを通じて。 getHelper() を直接呼び出して、ヘルパーの名前を渡すだけです。 リーリー
2. _helper アシスタントの属性に対応するヘルパー オブジェクトに直接アクセスします。 リーリー Zend_Controller_Action_HelperBroker
中国語名は「アシスタントブローカー」と訳され、その名前が示すように、アクションアシスタントの仲介者です。
アクションをインスタンス化する 2 番目の方法は、Zend_Controller_Action_HelperBroker のマジック メソッド __get() を使用することです。
アシスタント ブローカーは、アシスタント オブジェクトとアシスタント パスの登録、アシスタントおよびその他の機能の取得に使用されます。
Zend_Controller_Action_HelperBroker の実装と一般的なメソッドのリスト
リーリー アシスタントブローカーの一般的な使用法:1. アシスタントを登録します
1.
リーリー2. クラス接頭辞パラメーターを指定して addPrefix() メソッドを使用して、カスタム ヘルパー クラスにパスを追加します。
接頭辞は、Zend Framework のクラス命名規則に従う必要があります。
リーリー
3. addPath() メソッドを使用する場合、最初のパラメーターはディレクトリ、2 番目のパラメーターはクラス プレフィックス (デフォルトは「Zend_Controller_Action_Helper」) です。
独自のクラスプレフィックスを指定されたディレクトリにマッピングするために使用されます。
リーリー 2.通訳アシスタントの有無hasHelper($name) メソッドを使用して、アシスタント ブローカーにアシスタントが存在するかどうかを確認します。 $name はアシスタントの短縮名です (プレフィックスが削除されています)。 リーリー
ヘルパー ブローカーからヘルパーを取得するには、 getExistingHelper() と getStaticHelper() という 2 つの静的メソッドがあります。 getExistingHelper() は、ヘルパーが以前に呼び出されているか、ヘルパー ブローカーに明示的に登録されている場合にのみヘルパーを取得します。そうでない場合は、例外がスローされます。 getStaticHelper() は getExistingHelper() と同じことを行いますが、ヘルパー スタックが登録されていない場合は、設定するヘルパーを取得するために getStaticHelper() を選択することをお勧めします。どちらのメソッドも、アシスタントの短縮名 (プレフィックスを削除したもの) である $name という 1 つのパラメーターを受け取ります。
リーリー
3.removeHelper($name) はアシスタント ブローカー内のアシスタントを削除します。$name はアシスタントの短縮名です
。
// Conditionally remove the 'redirector' helper from the broker: if (Zend_Controller_Action_HelperBroker::hasHelper('redirector')) { Zend_Controller_Action_HelperBroker::removeHelper('redirector') }
更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。