Smartyテンプレートエンジンを使ってみよう
プログラマとデザイナーが別れて作業出来る環境を作る
cakephpやSymphonyなどのフレームワークにはMVC(Model View Controller)という概念が有ります。
これに関する説明は趣旨と外れますので書きませんが、簡素に説明すると、プログラムが行う処理を種別ごとに分けておこう、といった感じです。
なぜここでこれを出してきたかと言うと、Smartyを使うという事が、この概念に似ているからです。
ページの内容を書き変えるプログラム部分と、HTML部分を切り離して作業出来るようになれば、プログラマーはデザインが上がってくるのを待たずに作業が進められます。
また、デザイナーは完成後にデザインの修正などがあっても、プログラム部分に手を付ける事なく作業が出来ます。
Smartyのダウンロード
http://www.smarty.net/docsv2/ja/
ダウンロードしたファイルを解凍し、出来たフォルダーをSmartyなどとリネームしてサーバーにアップロードします。
次に、テンプレートフォルダーとキャッシュフォルダーを作ります。これらのフォルダーには好きな名前を付けて構いません。また、キャッシュフォルダーは、アクセス権を(777)にしておきましょう。
一番簡単なサンプル
1 2 3 4 5 6 7 8 9 | <?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をパーツごとに分けてテンプレートに書きます。
1 2 3 4 5 6 7 8 9 10 11 12 | <?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に書いた変数を、テンプレートの中に表示する事も簡単に出来ます。つまり、プログラマーとデザイナーで、その変数名を共有しておけば、デザイナーが変数の表示箇所を変更しても、値は正しく表示されます。
変数などについてはおいおい書いていきたいと考えています。