1

他のすべてのコードが実行された後、レイアウトがレンダリングされる直前にいくつかのコードを実行したいと考えています。そのコードをどこに配置しますか?

特に、レイアウトで使用される前に、headLink、headScript、および inlineScript ビュー ヘルパーで参照されるファイルを変更しようとしています。

実行したい手順は次のとおりです。

  1. これらのビュー ヘルパー内のファイルをループします。
  2. ローカル ファイルのリストを作成する
  3. ビュー ヘルパーからローカル ファイルを削除する
  4. 単一の HTTP 要求のためにそれらを結合するサーバー スクリプトへのパラメーターとして、ローカル ファイル リストを参照します。
  5. その新しい結合スクリプト参照を適切なビュー ヘルパーに追加します。

フロントコントローラープラグインがこれを達成するのに役立つとは思われません。その理由は次のとおりです。

  1. postDispatch()実行されるすべてのコントローラーアクションの後に実行され、スタイルシート/javascripts の完全なリストが必要です
  2. dispatchLoopShutdown()コントローラ アクション ループの後に実行されますが、レイアウトはこの時点で既にレンダリングされています

Rufinus が示唆したように、View Helpers を拡張することでこれを解決しました。 その角度からの私の質問と解決策はこちらです。

4

1 に答える 1

13

ZF1 ディスパッチ プロセスの概要 (c) Thorsten Ruf 著

Thorsten Ruf ( Mirror )によって作成された元の PDFを参照してください。

プラグイン経由でアクセスできる最後の部分は、dispatchLoopShutdown である必要があります

編集: ZendFramework2 については、http://zendframework2.de/en/cheat-sheet.html またはこの gdoc を参照ください。

于 2010-02-12T16:25:08.070 に答える