私はZend Frameworkでしばらく働いており、現在私のコードの一部をリファクタリングしています。私が大切にしたいのは、私のabstract
コントローラークラスです。このクラスでは、すべてのコントローラーに存在する必要がある多くの変数($success
、$warning
、$error
など)を開始します。この部分はコントローラプラグインで実行できますが、これらの変数を関連ビューに送信する最も良い方法は何でしょうか。私は私のすべてのコントローラ内から呼び出す私のabstract
コントローラクラスでカスタムメソッドを使用しています。その後、私はこのZendFrameworkコントローラからビューに変数を送信する(ベスト・プラクティス)
答えて
あなたに適したプラグインコントローラまたは何かを通じて、このプロセスを自動化するために探していたthrought
parent::sendViewData();
私のコントローラのすべてのすべてのアクションで呼び出され
protected function sendViewData(){
$this->view->success = $this->success;
$this->view->warning = $this->warning;
$this->view->error = $this->error;
}
抽象コントローラでpostDisplatchメソッドを設定して、ビューデータを初期化することができます(「プレディスパッチフックとポストディスパッチフック」を参照)。
このようにして、各アクションで$this->success
,$this->warnning
または$this->error
という変数を初期化できます。アクションが実行された後でビューに渡されます。
しかし、postDispatchメソッドをオーバーライドする場合は、具体的なコントローラでparent :: postDispatch()を呼び出さなければならないことに注意してください。 –
これまで私はpostDispatchメソッドを認識していなかったので、問題はありませんが、指摘してくれてありがとうございます。D –
pacticeは、直接この
// IndexController.php
class IndexController extends ApplicationController {
}
ようになる
Zend_Controller_Action
方法に
// Your base controller file ApplicationController.php
class ApplicationController extends Zend_Controller_Action {
// method & variable here are available in all controllers
public function preDispatch() {
$this->view->success = $this->success;
$this->view->warning = $this->warning;
$this->view->error = $this->error;
}
}
あなたの他の正常なコントローラを呼び出すのではなく、ベースコントローラを定義し、他のコントローラはこれを拡張してみましょうですベスト
この変数(成功、警告&エラー)は、すべてのビュー/レイアウトファイルで使用可能です。ApplicationController.php
他のコントローラの共有機能を保持することもできます。
- 1. ベスト・ソケット・ネーミング・プラクティス
- 2. コントローラからビューにパラメータを送信する
- 3. djangoビューからangularjsコントローラにデータを送信
- 4. ビューからコントローラにデータを転送し、
- 5. 正規表現のベスト・プラクティス
- 6. Websphere x JSR 286のベスト・プラクティス
- 7. 選択したチェックボックスのリストをビューからコントローラに送信する方法
- 8. コントローラからビューにデータを送信するか、ビュー内にロジックがありますか?
- 9. コントローラからjavascriptにphp変数をビューの先頭に渡す
- 10. コントローラからYiiのビューに変数を渡す
- 11. iPhoneコントローラ間で変数を送信する
- 12. コントローラから他のコントローラにデータを送信
- 13. Jqueryを使用してJavascript変数をRails 3コントローラに送信
- 14. 変数をctivityから別の変数に送信
- 15. ColdFusion CFCベスト/推奨プラクティスのコレクション?
- 16. Scalaのベスト・プラクティス:簡単なオプション[]用法
- 17. コントローラからの電子メールの送信
- 18. Zend:リダイレクト後にビュー変数を送信することはできますか?
- 19. AIRアプリケーションからブラウザウィンドウにPOST変数を送信する
- 20. ベスト・ウェイでSAMLアサーションを送信
- 21. このビューで複数のIDをコントローラに送信するにはどうすればよいですか?
- 22. WebAPIコントローラにC#オブジェクトを送信する
- 23. クエリ文字列を使わずにビューからコントローラに変数を渡す
- 24. Paho JavaライブラリーでMQTTメッセージを処理するためのベスト・プラクティス
- 25. oracle DBおよび.NETを使用する場合のベスト・プラクティス
- 26. MVCからビューへのデータの送信
- 27. flaからドキュメントクラスに変数を送信してからアクセスする
- 28. ベスト・イン・プレース・ルーティング・エラーの送信
- 29. 関数からポインタを送信する
- 30. コントローラからフォーム送信をトリガできますか?
お願いします。あなたはプラグインコントローラの作成を手伝ってほしいですか? –