ロゴ
HOME > Smarty > Smartyテンプレートエンジンを使ってみよう

Smartyテンプレートエンジンを使ってみよう

2014年03月07日

プログラマとデザイナーが別れて作業出来る環境を作る

cakephpSymphonyなどのフレームワークには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に書いた変数を、テンプレートの中に表示する事も簡単に出来ます。つまり、プログラマーとデザイナーで、その変数名を共有しておけば、デザイナーが変数の表示箇所を変更しても、値は正しく表示されます。

変数などについてはおいおい書いていきたいと考えています。