Smartyテンプレートエンジンを使ってみよう
プログラマとデザイナーが別れて作業出来る環境を作る
cakephpやSymphonyなどのフレームワークにはMVC(Model View Controller)という概念が有ります。
これに関する説明は趣旨と外れますので書きませんが、簡素に説明すると、プログラムが行う処理を種別ごとに分けておこう、といった感じです。
なぜここでこれを出してきたかと言うと、Smartyを使うという事が、この概念に似ているからです。
ページの内容を書き変えるプログラム部分と、HTML部分を切り離して作業出来るようになれば、プログラマーはデザインが上がってくるのを待たずに作業が進められます。
また、デザイナーは完成後にデザインの修正などがあっても、プログラム部分に手を付ける事なく作業が出来ます。
Smartyのダウンロード
http://www.smarty.net/docsv2/ja/
ダウンロードしたファイルを解凍し、出来たフォルダーをSmartyなどとリネームしてサーバーにアップロードします。
次に、テンプレートフォルダーとキャッシュフォルダーを作ります。これらのフォルダーには好きな名前を付けて構いません。また、キャッシュフォルダーは、アクセス権を(777)にしておきましょう。
一番簡単なサンプル
<?php require_once('Smarty/Smarty.class.php'); //ライブラリーを読み込む $smarty = new Smarty; $smarty-> template_dir = 'tpl/'; //テンプレートフォルダー $smarty-> compile_dir = 'cache/'; //キャッシュフォルダー $smarty->display('smarty01.tpl'); //表示するテンプレート ?>
smarty01.tplが今回表示するテンプレートです。.tpl という拡張子で作成し、そこにHTMLをただべた~って貼り付けるだけです。
これでは単にHTMLでもいいんじゃ?って事になりますが、とりあえずそういうものだと思って下さい。
ヘッダーやフッターをテンプレートに分ける
次に、HTMLをパーツごとに分けてテンプレートに書きます。
<?php require_once('Smarty/Smarty.class.php'); $smarty = new Smarty; $smarty-> template_dir = 'tpl/'; //テンプレートフォルダー $smarty-> compile_dir = 'cache/'; //キャッシュフォルダー $smarty->display('smarty02_Header.tpl'); $smarty->display('smarty02_Contents.tpl'); $smarty->display('smarty02_Footer.tpl'); ?>
ヘッダーとコンテンツとフッターに分ける事で、別なページを作っても同じヘッダーを使いまわす事が出来ます。
PHPに書いた変数を、テンプレートの中に表示する事も簡単に出来ます。つまり、プログラマーとデザイナーで、その変数名を共有しておけば、デザイナーが変数の表示箇所を変更しても、値は正しく表示されます。
変数などについてはおいおい書いていきたいと考えています。