Smartyとは?
SmartyはPHPのためのテンプレートエンジンです。
XOOPSや楽天などの大規模Webアプリケーションでも採用されています。
テンプレートエンジンの存在意義は、デザインとロジックの分離にあると思います。
デザインを分離することは、機能拡張やデザインの変更が容易になるはずです。
ロジックとデザインの分離がされていない場合、ちょっとした修正のはずが予期せぬバグが生じてしまう可能性が考えられるでしょう。
スクリプトが点在するHTMLは変更することすら困難になります。
また、テンプレートの組み込み関数によるサニタイズや表示に関する制御関数を使用することでスクリプトに手を加えることなくデザインを変更できるのも大きな利点です。
XOOPSや楽天などの大規模Webアプリケーションでも採用されています。
テンプレートエンジンの存在意義は、デザインとロジックの分離にあると思います。
デザインを分離することは、機能拡張やデザインの変更が容易になるはずです。
ロジックとデザインの分離がされていない場合、ちょっとした修正のはずが予期せぬバグが生じてしまう可能性が考えられるでしょう。
スクリプトが点在するHTMLは変更することすら困難になります。
また、テンプレートの組み込み関数によるサニタイズや表示に関する制御関数を使用することでスクリプトに手を加えることなくデザインを変更できるのも大きな利点です。
Smarty の特徴
- 非常に高速
- 下仕事はPHPパーサが行うので能率的
- コンパイルは一度だけ行われるので、テンプレートのパースによるオーバーヘッドが無い
- 変更されたテンプレートファイルのみ再コンパイルを行うのでスマート
- カスタム関数及び 変数の修正子をカスタム定義する事によって、 テンプレート言語を強力に拡張する事が可能
- テンプレート言語の開始と終端を表すデリミタタグの記法を変更可能 (例: { }, {{ }}, <!--{ }-->, 等)
- if/elseif/else/endif ステートメントはPHPパーサに渡されて処理されるので、{if ...}の条件式には シンプルな式から複雑な式まで自由に指定可能
- section, if等は無制限にネスト可能
- テンプレートエンジンはカスタマイズできるので必要ない(又は推奨されない)かもしれないが、 テンプレートファイルにPHPコードを埋め込む事が可能
- キャッシュ機能をサポート
- テンプレートリソースのサポート
- カスタムキャッシュハンドラ関数
- プラグイン構造