What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
Table of Contents
Smarty 2.0 から導入されたプラグインアーキテクチャにより、 Smarty のほとんど全ての機能がカスタマイズ可能になりました。 プラグインには次のものがあります。
リソースを除いて、register_* API
によって関数を登録する古い方法の後方互換性はサポートされます。
API を使わずに、代わりに $custom_funcs
,
$custom_mods
や その他のクラス変数を変更していたなら、
API を使用するか、行った拡張をプラグインに変換するようにスクリプトを調整する必要があります。
プラグインは要求があると常に読み込まれます。テンプレートから呼び出された 修飾子・関数・リソース等のプラグインだけが読み込まれます。 さらに各プラグインは同じリクエスト内に Smarty の異なるインスタンスが複数実行されていても、読み込まれるのは一度だけです。
プリフィルタ/ポストフィルタとアウトプットフィルタは少し特殊です。 これらはテンプレートから呼び出されないので、テンプレートが処理される前に API 関数を経由して明示的に登録または読み込まれる必要があります。 同じ種類の複数のフィルタが実行される順序は、それらが登録または読み込まれる順序によって決まります。
プラグインディレクトリ は、単一のパスを示す文字列または複数のパスを格納した配列でとなります。 プラグインのインストールは、単にプラグインファイルをいずれかのプラグインディレクトリ内に置くだけです。 そうすれば Smarty はそれを自動的に使用します。