Smartyはプログラム(ロジック)と画面(デザイン)を分離して管理することができるテンプレートエンジンです。主にPHPで使用されテンプレートエンジンの中でも最も長い歴史を持ちます。この記事ではSmartyを理解するために初心者でも分かる歴史、特徴、基礎知識について簡単に解説していきます。
Smartyとは主にPHPで使用されるテンプレートエンジンです。Smartyを利用することでプログラム(ロジック)と画面(デザイン)を分離して管理することができます。2001年に誕生し、数あるテンプレートの中でも一番長い歴史を持っております。そのため多くの開発実績があり、日本においてもドキュメントが揃っていることから重宝されております。
Smartyは画面を表示する前にコンパイルキャッシュを行い、表示を高速化させることができます。特徴として『プログラムとデザインを分けられる』『処理速度が早い』『拡張性が高い』などが挙げられます。
PHPとはラスマス・ラードフ氏によって1995年に開発されたオープンソースのサーバーサイド言語です。動的なWebページを生成することができるプログラミング言語として全世界で親しまれております。HTMLに埋め込むことが出来ることからWebシステム開発で使用される機会が多いです。
特徴は『動作確認が簡単であること』や『HTMLの中で簡単にコードを動かせる』といったことが挙げられます。またPHPはインタプリタ言語ですのでプログラムを実行する際にコンパイルが不要でソースコードの修正をした場合、即座に修正が反映されます。Webサービスを開発するプログラミング言語としてPHPは世界的にトップクラスの人気を集めております。
テンプレートエンジンとはテンプレートとなる部分とデータモデルで表現される入力データを合成し、成果ドキュメントを出力するソフトウェアです。テンプレートエンジンの主な構成要素として『データモデル』『ソーステンプレート』『成果ドキュメント』が挙げられます。
テンプレートエンジンの役割や種類などについて解説された記事はこちら>>
Smartyの読み方は『スマーティー』です。
Smartyのプロジェクトは1999年末から仕様を書き始めることでスタートしました。このプロジェクトによって最初に誕生したのが『SmartTemplate™』です。(こちらは一般公開されることはありませんでした。)SmartTemplate™は大規模なアプリケーションで動作が著しく遅いという問題に直面してしまいました。そしてプログラマーとデザイナーの分業を実現することで様々な処理問題を解決すべく『Smarty』が誕生しました。Smartyは誕生依頼度重なるバージョンアップを繰り返し、2021年4月現在最新版を『3.1.37』としております。簡単に以下の年表にまとめておりますのでご覧ください。
歴史 | 出来事 |
1999年 | 『SmartTemplate™』誕生 |
2001年 | 『Smarty 1.0』リリース |
2002年 | 『Smarty 2.0』リリース |
2010年 | 『Smarty 3.0』リリース |
2021年 | 『Smarty 3.1.37』リリース |
Smartyの特徴を見ていきましょう。
Smartyはプログラムとデザインを分けられるという特徴があります。これはSmarty誕生の目的でもあります。Smartyを利用することでプログラム(ロジック)と画面(デザイン)を分離して管理することができます。
Smartyは処理速度が早いという特徴があります。コンパイル方式を採用しているため最初のリクエストが来た際の実行のみとなり処理効率が高いです。またキャッシュ機能を搭載しているなどPHPのパフォーマンスを最大限に引き出すことができます。
Smartyは拡張性が高いという特徴があります。多数のプラグインが用意されていることやエンジン自体のカスタマイズができます。また関数や変数の修飾子を簡単に作成できるので機能拡張も用意です。
Smarty以外の代表的なPHP環境向けテンプレートエンジンを見ていきましょう。
Twigとは主にPHPで使用されるテンプレートエンジンです。Twngはセキュリティ対策やデバッグがしやすいと人気を集めております。Twigの構文はPython向けWebアプリケーションフレームワーク『Django』と近しいものです。Twigを利用することでHTMLにPHPを直接書き込むよりも、短くコーディングすることができ、よりテンプレートが読みやすい記述になります。『Symfony』フレームワークでは デフォルトのテンプレートエンジンとして採用されております。Twigの特徴として『セキュリティが高い』『処理速度が早い』『柔軟性が高い』などが挙げられます。
Twigの公式サイトはこちら>>
Twigの歴史や特徴などの基礎知識について解説された記事はこちら>>
BladeとはPHP向けWebフレームワークLaravelのために作られたテンプレートエンジンです。主に見た目の部分を作成するにあたって手助けをしてくれる機能を搭載しております。そしてBladeはクラスのように階層化されております。
Bladeの公式サイトはこちら>>
dwooとはPHP用のモダンで柔軟なテンプレートエンジンです。主にPHP5およびPHP7で動作します。Smartyと互換性があり、PHP5版のSmartyとも呼ばれております。特徴として『テンプレートの継承』『プラグインで柔軟』『シンタックスシュガー』などが挙げられます。
dwooの公式サイトはこちら>>
Skinnyとは日本発のPHP用テンプレートエンジンです。小規模な開発に向いておりシンプルであることが特徴です。開発現場で使われない機能は極力省き、使用頻度の高い機能に的を絞って開発されています。
Skinnyの公式サイトはこちら>>
Smartyを理解するために初心者でも分かる歴史、特徴、基礎知識などを簡単に解説させていただきました。Smartyを一言で表すと『プログラム(ロジック)と画面(デザイン)を分離して管理することができるテンプレートエンジン』です。「プログラムとデザインを分けられる」「処理速度が早い」「拡張性が高い」などの特徴が挙げられます。Smartyについてこの記事に書かれている最低限の内容は理解をしておくようにしましょう。