LopipopでSmartyを使う
前回include_pathを設定したとき「Smarty」の文字があったことからもわかるように、LolipopではSmartyが使用可能になっている。
まずはバージョンをチェック。Zendの技術情報コンテンツに「smartycheck.php」というコードが掲載されているので、LolipopのSmartyのバージョンを調べてみよう。
you can use Smarty(version 2.6.8).
2.6.8は2005年3月のリリース。最新版は2.6.19(2008年2月)なので、できれば新しいものを使いたい気分。
●オフィシャルからダウンロード
●ディレクトリを作って展開
アーカイブの「libs」以下をすべてコピーし、必要なディレクトリを作る(名前は私の趣味。「templates_c」に違和感を感じるので。)
/smarty cache compile configs libs templates
cache,compile,configsはパーミションを0777に変更しておく。
●include_pathを設定
前回作った.htaccessを修正。
<IfModule mod_php4.c> php_value include_path ".:/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/lib/PEAR:/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/smarty/libs:/usr/local/lib/php" </IfModule>
●/smartyをふさぐ
Smarty関連のディレクトリは外から見えてもいいことはないので.htaccessでふさいでおく。
【/smarty/.htaccess】
Order allow,deny Deny from all
●テストしてみる
【smarty_test.php】
<?php define('SMARTY_ROOT', "/home/sites/lolipop.jp/users/[domain]-[your-subdomain]/web/smarty") ; define('SMARTY_DIR', SMARTY_ROOT . "/libs/") ; require_once "Smarty.class.php" ; $smarty = new Smarty() ; $smarty->template_dir = SMARTY_ROOT . "/templates/" ; $smarty->compile_dir = SMARTY_ROOT . "/compile/" ; $smarty->config_dir = SMARTY_ROOT . "/configs/" ; $smarty->cache_dir = SMARTY_ROOT . "/cache/" ; $smarty->assign("hoge", "piyo") ; $smarty->display("smarty_test.tpl") ; ?>
【smarty_test.tpl】
smarty_test.tpl<br />
var 'hoge' = [{$hoge}] .
もちろんSmartyを使うページではベースクラスを作って使う。Smartyを使うと強制的に「俺フレームワーク」を書かされるのでいい勉強にもなると思う。
●リンク
本家:
http://www.smarty.net/
日本語ドキュメント:
http://www.smarty.net/manual/ja/