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)に続く)
最新のブログ記事(新着順)
- くちばしフォント【商用可】
- 小説表紙などに使えそうな商用可なフォント「になロマン」
- 筆で書いたようなカナ書体「筆竹仮名B」
- 無料・商用利用可な丸文字ピクセルフォント「マルミーニャM」
- スペースコブラ風フォント
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 過去のエントリ