[PHP-users 9711] Re: テンプレートのどこがいいの?
php-users@php.gr.jp
php-users@php.gr.jp
Wed, 04 Sep 2002 00:47:38 +0900
中野です。こんにちは。
みなさん、いろいろご意見ありがとうございます。
お目汚しだとは思いますが、
みなさんのご意見を伺った上での感想を書きます。
とりあえず、単純なデータの埋め込み、MVCの分離
ということに関しては、やっぱり「テンプレートは要らない」
と思います。データ生成と表示をわけるのに
PHPの埋め込み機能以外要らないですよね。
私は、
function showpage($param, $filename) {
// $paramは表示に必要なデータを格納した連想記憶配列
// キーは、変数名に使えるもののみ
// $filenameは表示内容のhtmlテンプレート
extract($param);
include $filename;
exit(0);
}
という形で、ページを表示しています。
extractのおかげで、連想記憶配列にアクセスするのに
いちいち<?=$param['xxx']?>としなくても
<?=$xxx?>で良いので、さっぱりします。
入れ子データの場合も、
<?php foreach ($yyy as $yy) { extract($yy); ?>
...
<?php } ?>
なんてやっちゃってます。まあ、まずめったに問題は起きません(笑)
いくつかのご意見に有ったように、データアクセス以外のコードを
勝手にテンプレートにかかれては困ると言うことは有るかもしれませんが、
「やっちゃいけないこと」は他にもいくらでも有って、
これ一つ潰したぐらいで総量はあんまり減らないんじゃないかと。
逆に、テンプレートレベルでもPHPのコードを気軽に使うのも良いでは
ないかと思ったりします。たとえば、
<HTML>
<HEAD>
<TITLE><?=$title="タイトル"?></TITLE>
</HEAD>
<BODY>
<H1><?=$title?></H1>
...
ぐらいは良いのでは無いかと。
テンプレートライブラリを通すとデバッグが大変じゃ無いかと
いうことはあります。(smartyは頑張っているみたいですが)
初期のC++のデバッグのような思いは、もう懲りごり:)
それぞれのテンプレートが持っている便利機能は、
それはそれで便利ですが、生PHPや適切な関数を作ることで解決できます。
カスタムタグまでいってしまうと、XML好きの私は
大変心惹かれることではありますが、
Jspのタグライブラリの変遷を見ていると、
逆にタグライブラリでモデル生成、表示までしてしまおうという
感じが有って、MVC的では無いのかなと思います。
Strutみたいなフレームワークが、Pearで生PHPで出てくれれば良いんですけど。