Smarty徹底入門(1)
2005年04月03日-
ブログですが書くこともなくなってきたのでPHPテクニックについて書いていこうと思います。
ちょっと古いですが、テンプレートエンジンのSmartyに関して。
テンプレートエンジンのSmarty、使っている方もいるとおもいますがまだまだ少ないと思いますので、簡単に説明します。
Smartyのメリットとして、
-デザイナーとの分業
-テンプレートソースの可読性向上
-変数のカプセル化
があります。
デザイナーと分業を行う際に、デザイナーがPHPはわからずともHTMLは分かれば編集が容易であるという点、あとテンプレート自体のソースも が入らず読みやすくなります。
変数のカプセル化という意味でもオブジェクト指向をやっている人には大きなメリットがあるでしょう。通常 のコードを複数インクルードする場合は変数名の重複が起きて厄介だったりしますが、Smartyでこれを解決できるでしょう。
Smarty を使うには
Smartyのサイトから最新版をダウンロードして、pear などのディレクトリか、プログラム設置ディレクトリにおきます。(要はrequireできるパスに置けばよい)
ダウンロードパッケージを解凍すると、libs というディレクトリがあり、それがSmartyのソースが実際に入っているコードです。Smarty.class.php を読み込んで使います。
<?php
require'Smarty/libs/smarty.class.php';
function get_smarty_object(){
$smarty = new Smarty();
$smarty->template_dir = "./template/"; // テンプレートファイルが存在するディレクトリ
$smarty->compile_dir = "./compile/"; // テンプレートのキャッシュを作成するディレクトリ
return $smarty;
}
$smarty = get_smarty_object();
?>
で、このように関数を使って $smarty オブジェクトを作ります。
オブジェクト指向が好きな方は以下のような感じで Smarty のサブクラスを作ってもよいでしょう。
class customSmarty extends Smarty {
function customSmarty() {
$this->Smarty();
$this->template_dir = "";
$this->compile_dir = "";
}
}
$smarty = new customSmarty();
----
※template_dir として指定しているのは、テンプレートファイルのある基本位置を指定しています。これにより、テンプレートをファイル名だけで呼び出すことができるようになります。
※compile_dir として指定しているのは、Smartyはテンプレートを高速に処理するため、2回目以降のアクセス用にキャッシュを作成します。そのキャッシュを保存するディレクトリを指定しています。
$smarty オブジェクトを作ったら、
$smarty->assign("hensu","aaa");
$smarty->display("テンプレートファイル名");
のようにすると、テンプレートファイル名で指定したテンプレートファイルを読み込んで画面に出力します。
テンプレートファイルの中身は、
----
hensu に {$hensu} が設定されました。
----
のような感じだとすると
----
hensu に aaa が設定されました。
----
と、画面に表示されます。
(明日(4/4)に続く)
最新のブログ記事(新着順)
- CSSやTailwindでのCSSスニペットライブラリ「CSS Snippets Library」
- AIを使ってサイトマップが作れる「Octopus.do」
- ライブラリ依存のないモーダルオープンライブラリ「Blendy」
- 個性的な明朝フリーフォント「築豊初号明朝OFL」
- CSSで太陽が差し込むようなアニメーション実装
- 可愛くアニメーションする「beautifully crafted animated icons」
- アイソメトリックなアイコンがアイコンがPNG,SVGでゲットできる「Isoicons」
- ユニークなカタカナフォントtorisippo
- 美しいメッシュグラデーションをCSSで簡単に取得できる「MSHR」
- TailwindCSSなサイトで使える100以上のアニメーションエフェクト「animata」
- 過去のエントリ