[PHP-users 2382] Re: プログラムの知識がまったくない人でもデザインを作成できなければ

naoki kishida php-users@php.gr.jp
Mon, 01 Oct 2001 20:05:11 +0900


きしだです

> 完全に分離するなら、それはそれで簡単だと思います。
> 
> 例えば、岸田さんの時間から挨拶への変換を例にすると、デザイナーさんには挨拶の
> 所には<? echo $aisatu_str ?> って書いといてねとお願いしておき環境を作って
> おけば良いのでは。

これだけだと、けっこう簡単に破綻してしまうんです。
たとえば、挨拶文は複数行だとすると、$aisatu_str=nl2br($aisatu_data)という
ような処理が前処理として入って<br>タグを挿入すると思います。

それが、*デザインの都合で* <pre>タグで囲むことになったとすると、nl2brの処
理を外す必要があります。
ここで問題になるのは、デザインの変更であるはずなのに、PHPプログラムの変更
が発生したということです。
デザイナーさんへの約束を<? echo nl2br($aisatu_str)?>としておいて、<pre>で
囲むならnl2brを外してというのは、PHPプログラム、要するにC構文の教育をする
のとかわりません。PHPプログラムに変更があったことには変わりないし。

逆にいえば、$aisatu_str=nl2br($aisatu_data)という処理は、PHPプログラムの
中にデザインが入っていることになります。

つまり、この問題は、出力の中にタグが入るときに発生します。
単純にPHPプログラムが持っているデータを出力する<? echo $aisatu_str?>のよ
うなものであれば、デザイナーとの約束事で問題ないと思います。

結局デザイナーさんがいやがるのは違う構文を覚えることです。
(と書くとデザイナーさんの怠惰のようですが、決してそうではありません)

というわけで、(Javaに限らず)カスタムタグを使って
  <php:nl2br>
  <? echo $aisatu_str?>
  </php:nl2br>
という表現になっていれば、デザイナーさんに違和感無く記述してもらえるとい
うことです。<pre>タグで囲むことになったときには<nl2br>タグを外してもらう
と言う、*MLの変更だけで解決します。

すごく簡単な例ですが、これは商品一覧や掲示板など、制御構造と表現が入り混
じるようなときに、かなり差が出ると思います。


このような2つの構文が入り混じることは、かなり深い問題のようで、ぼくはち
ゃんと説明する知識をもっていません。
ただ、XMLで、DTDが独自構文になっていてXMLで書けないというのがここ何年かの
課題となっているのを見れば、それがかなり大切なことだとわかります。

> それは、作業手順を考えないからじゃないかな。私はそれなりにできると思いま
> すよ。

問題が多発するのは、作業後半・もしくは終了後の、変更がでてくる辺りからな
んです。
書いたとおりに動けばいい段階では、それほど問題は発生しないと思います。

もちろんカスタムタグを使えば作業手順を考えなくていいと言うことではなく。
何人かで作業する以上、どんな方法を使うとしても結局作業手順が大切だとおも
います。

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