TagActionDispatcher は、基本的なテンプレート タグへのアクセスをサポートする標準の ActionDispatcher クラスの実装です。 TagActionDispatcher クラスは、デフォルトの ActionDispatcher と同じ ActionObjects コレクションおよび ViewResourcesConfig プロパティをサポートします。 TagActionDispatcher クラスは、テンプレート タグ システムの有無にかかわらず使用できますが、追加の処理によりパフォーマンスに多少の影響が生じます。
テンプレートのタグライブラリはPHPです。 MVC フレームワークのサブシステムであるテンプレート タグ ライブラリは、TagActionDispatcher と連携して、いくつかの単純なテンプレート タグをサポートします。
下の図はPHPを示しています。 MVC テンプレート タグ システムの概要。左側にテンプレートタグシステムのプログラムフローを示します。右側は、TagActionDispatcher のプログラム フローと、タグ テンプレートを使用してこれらのクラスがどのように対話できるかを示しています。
1. 初期化
コントローラーが TagActionDispatcher に制御を渡すと、テンプレートを使用するために ActionObjects プロパティと ViewResourcesConfig プロパティを設定するための初期化がトリガーされます。
$form、$errors、および $data オブジェクトを次から取得します。これらのオブジェクトのいずれかが以前に作成されている場合 (Action クラスなど)、そのオブジェクトはリソース テンプレートに表示されなくなります。それ以外の場合、オブジェクトは NULL に設定されます。
構成パラメータを含む ViewResourcesConfig オブジェクトへの参照を取得します。
ViewResourcesConfigパラメータにテンプレートソースファイルとコンパイル済みテンプレートファイルへのパスを設定します。
2. タグページを設定します
テンプレートソースファイルの拡張子(「.ssp」の場合があります)は、ViewResourcesConfig->tagFlagStrパラメータと比較して、このページを処理する必要があるかどうかを判断するために使用されます。そうでない場合、ページは次のように処理されます。標準 (タグなし) テンプレート ファイル。 view-resources 要素でタグ ファイル拡張子を次のように設定できます:
<view-resources
. . .
tagFlagStr = ".ssp"
tagFlagCnt = "-4"
. . .
</view-resources>
tagFlagStr は、myPage などのタグ テンプレート ソース ファイルを前処理できることを示します。亜種この拡張機能はタグ処理をトリガーします。属性 tagFlagCnt は、「.」を含むファイル名の末尾の文字数を定義します (xxxYyy.ssp)。例によれば、-4 はソース ファイル名の最後の 4 文字を表します。デフォルト値は です。 ssp と -4 なので、myPage のようなテンプレート ファイル名を使用するとします。 ssp、これらのパラメータを設定する必要はありません。
3. タグファイルを処理する
テンプレートタグシステムは、ViewResourcesConfig->processTags 属性に基づいてタグプロセッサを実行するかどうかを決定します。このプロパティが true の場合、テンプレート ページ (およびそれに含まれるページ) はタグ ハンドラー クラスによって処理されます。それ以外の場合、タグ ハンドラーは呼び出されません。開発者は開発中にこれを true に設定するだけでよく、それ以外の場合は処理されません。ただし、processTags 属性が true に設定されている場合、変更されたタグ ページがコンパイルされることに注意してください (これは、compileAll 属性の設定に依存します)。次のように view-resources 要素で processTags 属性を定義できます:
http://www.bkjia.com/PHPjc/445229.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/445229.html技術記事 TagActionDispatcher は、基本的なテンプレート タグへのアクセスをサポートする標準の ActionDispatcher クラスの実装です。 TagActionDispatcher クラスは、同じ ActionObjects コレクションと ViewResourcesConfi をサポートします...