Smarty マニュアル

前のページ

次のページ

第 15章プラグインによるSmartyの拡張

目次

プラグインの動作の仕方

命名規約

プラグインの記述

テンプレート関数プラグイン

修正子プラグイン

ブロック関数プラグイン

コンパイラ関数プラグイン

プリフィルタ/ポストフィルタプラグイン

アウトプットフィルタプラグイン

リソースプラグイン

インサートプラグイン

Smarty 2.0 から導入されたプラグインアーキテクチャにより、Smartyのほとんど全ての機能がカスタマイズ可能になりました。プラグインには次のものがあります。

・テンプレート関数プラグイン

・修正子プラグイン

・ブロック関数プラグイン

・コンパイラ関数プラグイン

・プリフィルタプラグイン

・ポストフィルタプラグイン

・アウトプットフィルタプラグイン

・リソースプラグイン

・インサートプラグイン

リソースを除いて、register_* APIによって関数を登録する古い方法の後方互換性はサポートされます。 API を使わずに、代わりに $custom_funcs, $custom_mods や その他のクラス変数を変更していたなら、APIを使用するか、あなたの行った拡張をプラグインに変換するように スクリプトを調整する必要があります。

プラグインの動作の仕方

プラグインは要求があると常に読み込まれます。テンプレートから呼び出された修正子・関数・リソース等のプラグインだけが読み込まれます。さらに各プラグインは同じリクエスト内にSmartyの異なるインスタンスが複数実行されていても、読み込まれるのは一度だけです。

プリ/ポストフィルタとアウトプットフィルタは少し特別なケースです。それらはテンプレートから呼び出されないので、テンプレートが処理される前にAPI 関数を経由して明示的に登録又は読み込まれる必要があります。同じ種類の複数のフィルタが実行される順序は、それらが登録又は読み込まれる順序によって決まります。

プラグインディレクトリは、単一または複数のパスを格納した配列である事ができます。 プラグインのインストールは単にプラグインファイルをディレクトリ内に置くだけです。そうすればSmartyはそれを自動的に使用します。

ページ上段