テンプレートエンジンSmartyとは?特徴や使用感を解説

この記事を書いたチーム:frontier
テンプレートエンジンSmartyとは?特徴や使用感を解説

Smartyとは

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

SmartyはPHPベースのテンプレートエンジンです。

PHPを使用したウェブアプリケーションの開発において、HTML/CSS、JavaScriptなどのフロントエンドのコードとロジックを分離することができます。

コードを分割することで、PHPコードとテンプレートコードの混在を避け、コードの再利用性や保守性を向上させます。

Smartyの特徴

Smartyの特徴として以下のような点があげられます。

・ロジックの分離

Smartyを使用してテンプレートコードとPHPコードのロジックを分離させることで、デザイナーやフロントエンド開発者が、PHPコードに触れることなくテンプレートを編集することができます。

・独自のテンプレート言語

Smartyは、PHPの構文のような独自のテンプレート言語を提供しています。テンプレート内で変数の挿入や操作、ループや条件分岐、関数なども扱うことができます。

・キャッシュ機能

Smartyはテンプレートをキャッシュする機能を提供しています。キャッシュ機能を利用することでテンプレートの再コンパイルをせずにキャッシュされたデータを読み込むことができます。これによって、ウェブページの読み込み速度を高速化することができます。

Smartyを使ってみる

今回はSmartyを使って、教科ごとにテスト結果の合否が分かるテーブルが表示されるページを作成していきます。

1.ダウンロード

Smartyの公式サイトからSmartyの最新バージョンをダウンロードします。

https://www.smarty.net/download

ダウンロードしたファイルをプロジェクトのルートディレクトリに配置して解凍します。

2.ディレクトリの作成

テンプレートを格納するテンプレートディレクトリとコンパイルされた後で自動的にテンプレートを格納するコンパイルディレクトリを作成します。

mkdir templates

mkdir templates_compile

3.テンプレートの作成

PHPファイルとテンプレートファイルを作成します。テンプレートファイルはtemplatesディレクトリ直下に作成します。

testResult.php

 

$smarty->assignメソッドでテンプレートの変数に格納して、$smarty->displayメソッドでテンプレートを表示しています。

templates/testResults.tpl

 

Smartyのデフォルトのデリミタは{}で、その中にコメントや変数、条件・ループなどの構文を記述しています。

画面を開くとと以下のように表示されました。

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス