Smartyを使おう!

Smartyとは、PHPのテンプレートエンジンライブラリである。
マニュアル等は本家サイトにじゅうじつしているのでそちらを参考にしていただきたい。
http://www.smarty.net/docsv2/ja/

とりあえず、本家サイトから最新版のSmartyをダウンロードしよう
http://www.smarty.net/download
この記事を書いている時の最新版は、Smarty 3.1.12だ。tar.gzでもzipでも構わない。
Windowsで作業している人はZip版のほうが解凍しやすいだろう。

解凍後のファイルはこうなっている

plubins/
sysplugins/
debug.tpl
Smarty.class.php
SmartyBC.class.php

これを任意のディレクトリに起き、PHPでSmarty.class.phpをrequireすれば使用可能となる。

次に、Smartyはキャッシュファイルコンパイルファイルなどを生成する機能がある。これは、一度使用したテンプレートをSmartyが早く動作するようにファイルを加工する。これをSmartyではコンパイルといい、コンパイルの際に生成されたファイルをコンパイルファイルとする。

で、このコンパイルファイルをどこに保存しておくのか等の設定をSmartyに教えてやる必要がある。

が、Smarty自体はクラスなので使用する際にはnewしインスタンス化して使用する。newするたびにディレクトリ設定をする事になるのだが…
面倒なのでSmartyクラスをラッピングし、ラッピングクラスで設定を行うことにする。こうすることでnewするだけで設定適応済みのSmartyを生成できるというわけだ

Smartyラッピングクラスは下記の通り

require_once ‘./lib/smarty/Smarty.class.php’;

//Smartyのコンパイルファイルやらキャッシュファイルやらを置いておくベースパス
define(‘BASE_PATH’, ‘/home/www/private/smarty/’);

class MySmarty extends Smarty{

public function __construct(){
//$this->Smarty();
parent::__construct();
//$this->template_dir = BASE_PATH.’smarty/temp’;
$this->template_dir = BASE_PATH.’display’;
$this->compile_dir = BASE_PATH.’smarty/temp_c’;
$this->config_dir = BASE_PATH.’smarty/conf’;
$this->cache_dir = BASE_PATH.’smarty/cache’;
//$this->plugins_dir[]= BASE_PATH.’libs/smarty/plugin’;
//開発時にキャッシュされると困るのでキャッシュ機能を止める
$this->caching = false;
$this->compile_check = false;
//開発時にコンパイルされないと困るので強制コンパイルをさせる
$this->force_compile = true;
}
}

という感じになる。
実際のパスはお好みに設定するとよい。

長くなってので、次は実際にSmartyを使ってHtmlを出力しようと思う

One comment

Comments are closed.