[PHP-users 21881]Smartyの利点

kenbooit @ excite.co.jp kenbooit @ excite.co.jp
2004年 5月 29日 (土) 15:03:35 JST


こんにちは。
島田と申します。

デザインとロジックの分離などが結構話題になっているので更にご質問。
ひとまずテンプレートエンジンはSmartyが一番実績がありそうなので、
これに限定したいと思います。

基本的に私は1人プロジェクトなので、
Smartyを業務でまともに使ったことはありません。
ただ、「Smartyは1人開発であっても、
デザインとロジックの分離を容易に実現してくれるので、
全然使うべきですよ。」みたいな意見を結構耳にします。

対して、そんなのプログラムを分けて書けば同じことでしょ、
という意見もあるらしく、それでもSmartyは「これこれこうだからいいんだよ。」
みたいな対抗意見を雑誌かなんかで見たような。

私もSmartyの利点を青マンモス本なんかを読んでる限りは見いだせなくて、
以下のように分離すればいいじゃん、という派です。

test.php
---------------------------------------------------------
<?
require ("test.inc");
?>

<html>
<title><?= TITLE ?></title>
<body>
<?= $pulldown ?><br><br>
This is test page.
</body>
</html>



test.inc
---------------------------------------------------------
<?

define("TITLE", "Welcom to my home page!");

$name = array('A','B','C');

ob_start();
print("<select name=name>\n");
foreach ($name as $value) {
  print("<option value=\"$value\">$value<br>\n");
}
print("</select>\n");
$pulldown = ob_get_contents();
ob_clean();

?>


と書いているうちに一つ利点に気付きました。
テンプレートだとテンプレート故にホームページビルダーみたいなソフトの
編集画面で下みたいな作業が簡潔するのですが、
上の方法だとHTMLソースの編集画面には行ってもらう必要はありますね。

test.tpl

<html>
<title>{$TITLE}</title>
<body>
名前:{$pulldown}<br><br>
This is test page.
</body>
</html>

でも、いくらデザイナーさんとはいえ、
あれぐらいのことはできる、と思いますので、
大した利点が見出せません。
むしろ無理やりテンプレートを使うことによって、
プログラムの見通しがかえって悪くならないかなあ?とも思ったりしています。

Smartyの利点。これだ!というものがありましたらば教えてください。
よろしくお願い致します。


PHP-users メーリングリストの案内