フレームワーク
Smarty
SmartyはPHP開発のテンプレートエンジンです。テンプレートとはひな形であり、一般に手紙を書く場合にもひな形があれば、それを真似て必要な部分だけを書き換えればよく、大変重宝します。Smartyは、いわゆるPHPプログラミングのひな形である訳です。
PHP開発の多くのwebアプリケーションフレームワーク環境に於いて、広く利用されているPHPテンプレートエンジンです。LGPLとして配布されています。PHPのプレゼンテーション層と呼ばれる画面表示やユーザインターフェース部分とアプリケーション層と呼ばれるビジネス・ロジックを分離して開発できるようにしました。これはプログラマとWEBデザイナーが役割を分担して作業を進めるのに適した環境であります。
しかし、Smartyはプレゼンテーションとビジネス・ロジックの分離を強制していません。フレームワークと異なるところは、プレゼンテーションのテンプレートにロジックを含める事ができます。Smartyはテンプレート内がプレゼンテーションなのかビジネス・ロジックなのかを区別しません。しかし、テンプレート内にPHPコードを埋め込む事は余り推奨しない使い方です。
特徴的なのは、テンプレートをコンパイルするという事です。テンプレートを元にPHPスクリプトを作成し、その後はコンパイルされたPHPスクリプトを実行するので、リクエストの度にテンプレートファイルを参照して処理すると言ったオーバーヘッドタイムが全く不要であると言う事です。
さらに何らかの仕様変更があり、再コンパイルする場合でも、変更があったテンプレートのみ再コンパイルすればよく、大変効率的です。