Smarty
Webページの雛形(テンプレート)と、その中に埋め込みたいデータ群を定義すると、それらを組み合わせて自動的にWebページを生成してくれる「テンプレートエンジン」(template engine)と呼ばれるソフトウェアの一つである。
利用者はPHPプログラムとして処理内容を記述し、結果をどのテンプレートで表示するかをプログラム中で指示する。テンプレートはHTMLやCSSでWebページのデザインやレイアウトを記述したもので、処理結果を受け取って埋め込む場所(プレースホルダ)を「$」(ドル記号)で始まる特殊な記法で指定する。
Smartyは両者を解釈して処理結果を雛形に埋め込んだページを自動生成する。これにより、プログラマーはプログラムだけを、デザイナーはデザインだけをそれぞれ編集することができ、アプリケーションの論理(ロジック)と表示(プレゼンテーション)を分離することができる。
SmartyはテンプレートファイルをPHPファイルにコンパイル(変換)し、閲覧者にページを送信する際は変換済みのファイルを使用するため、テンプレートの解釈に要する時間が短縮され、高速に動作する。テンプレートが更新されると自動的にコンパイルし直してくれる。
SmartyはPHPが動作するWebサーバ環境に追加で導入することにより利用可能になる。LGPL(Library GPL)というライセンスに基づいてオープンソースソフトウェアとして公開されており、非オープンソースの製品に組み込んだ状態で販売するといった利用方法も可能となっている。
(2022.6.28更新)