[PHP-users 9674] Re: テンプレートのどこがいいの?

井上(ドリコム) php-users@php.gr.jp
Sun, 1 Sep 2002 15:41:30 +0900


井上@ドリコムです。

以前、ロジックとデザイン部を分けるため、
私もテンプレートを使っていました。
いろいろなテンプレートを試し、納得がいかず、
独自のテンプレートエンジンを作ったのですが、
処理が遅く、使えませんでした。

結局、試行錯誤しているうちに、
> もともとphpではjspやaspのようなhtml埋め込みコードを
> 最初からできるようにしたサーバサイドスクリプト言語ですし
という、中野さんと同じ答えにたどり着きました。

> #もし、phpの埋め込みコードが書きにくいのならば、
> #テンプレートではなくて、埋め込みコードやphpの構文拡張を
> #すすめるべきなんじゃ無いのかなと思ったりするのです。
> #smartyなどで実績があればなおさらです。
そうなんです、独自のテンプレートを作っているうちに、
PHP自体を変えちゃえばいいじゃん、という結論になってしまったんです。
#私も、ある程度満足し、そんな時間はないので普通にPHPしてますが。。

テンプレートのタグをデザイナーに理解させるのと、
<?=  ?>という、phpのタグを理解させるのでは、
それほど変わらないかと思います。
MVCモデルを用いて開発しているのですが、ほとんどの場合、
Modelを作っている間に、デザイナーにHTMLを作ってもらい、
そのHTMLをPHPタグを含んだViewに書き換え、
Controllerを作っていく、
という流れです。
Viewをデザイナに修正してもらっても、すこしタグの意味を教えてあげれば、
大抵の場合ちゃんと修正してくれます。

ちなみにタグは、
<? if () { ?>・・・<? } else { ?>・・・<? } ?>
<? while () { ?>・・・<? } ?>
<? include 'header.phtml' ?>
といった、コーディング規則で書いています。

ysanoさんのおっしゃられていた、1,2の利点は、
テンプレートを使わなくても可能ではないかと思います。
私の意見では、テンプレートを使う大きな利点は、
完全にロジックと分離できるところだと思います。

私がテンプレートを使わない一番の理由は、
テンプレートの使い方を覚えなければならない、覚えさせなければならない。
ということでしょうか。
これには、拡張も含まれています。
拡張可能なテンプレートエンジンの場合、拡張の仕方を覚えなければならないのです
が、
テンプレートを使わなければ、普通に関数を作っておくだけであったり、
PHPの知識さえあれば、拡張ができるわけです。

一応、両方試して、使わない派に落ち着いてしまっています。
他にも、こんな便利な点がある、
ということがございましたらご教示ください。

--
有限会社ドリコム http://www.drecom.co.jp/
井上 陽平  <inoue@drecom.co.jp>
http://myprofile.ne.jp/inoue