[PHP-users 2447] ロジックとデザインの分離 (was: PHPと JSPの比較 )

naoki kishida php-users@php.gr.jp
Wed, 03 Oct 2001 22:34:08 +0900


きしだです
とりあえずいい訳というか。

> 「ロジックとデザインの分離」を唱えながら、
> FastTemplateやカスタムタグ程度の分離に固執(納得? 妥協?)している方が
> 多い様に見えるのは気のせいでしょうか…。

[php-users:2350]で書いたように
>>> 実際にカスタムタグで実現できるのはJava構文(エセC構文)と
>>> *ML構文の分離ですね。「できることなら今すぐやりたい」のも「構文の違う言語
>>> の分離」です。
>>> カスタムタグを使ってもロジックとデザインが混在できるわけで、また、現状の
>>> PHPでもロジックとデザインの分離はできますね。

というわけで、カスタムタグは別に「ロジックとデザインの分離」を唱えている
わけではないです。

また、JavaのカスタムタグはXMLであり、本質的にはXSL(T)とかわらないと思いま
す。実際に Jakarta-taglibsにはXSLというカテゴリーもあります。
# 標準化は別として。

> でも、「ファイル」や「作業」の分離が可能かどうか、

ファイルは分離できますね。
僕の自作PHPカスタムタグの場合は、テンプレートと、テンプレート読みこみスク
リプトが否応無しに別れてしまうので、分離できますし。

> プログラム動作上の「ロジックプロセス」と「デザイン(整形)プロセス」
> の分離が可能かどうか、将来性・互換性・柔軟性のある方式かどうか等を
> 考えると、既にXSL(T)が利用できる今、あまり魅力的に感じられないと思うのです。

XML+XSL(T)の場合、いったんXMLデータを吐き出してXSLTで処理ということになる
と思います。
この場合、ネームスペースを始め、すべてが処理側とXSL(T)で独立しますよね?
つまり、XMLデータという壁をへだてて、ロジックとデザインが隔離している状態
だと思います。

Javaのサーブレット+JSP・カスタムタグの場合、変数スコープは別になりますが、
共通のクラスが利用可能です。
自作PHPカスタムタグの場合は、includeするだけなので、グローバルスコープ万
歳でそのまま変数が使えます。

ホームページの場合、ロジックとデザインが密接にかかわるので、このように適
当に共有化ができたほうがいいと思うのですが。

XML+XSL(T)のメリットは、非営利団体による標準化ということで、処理系非依存
で共通化ができるということだと思います。
XMLデータさえ吐き出してしまえば、JavaからでもPHPからでもCからでも共通の
XSL(T)が使えると言う。

っていうか、XSLとXSLTってどっちがなんだったか、いまだに使いわけれないので
すが。

----
岸田 哉生(きしだ なおき)
	email:kishida@fk.urban.ne.jp
	http://www.fk.urban.ne.jp/home/kishida/