トップページ⇒php
930コメント657KB

コンテンツとデザインの分離

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2001/05/27(日) 17:59ID:6pK8snWA
ASPでもPHPでもPerlでもJavaでも形こそ違えど結局は可変部を吐き出すための
<%〜%>やらprint文の嵐になってしまう。

「HTMLはHTML、プログラムはプログラムと完全に分離する方法はないものか。」
を話し合うスレッドです。
0180nobodyさん02/04/01 04:24ID:Hzf2fsPp
HTML::Templateってデザインとロジックの分離ができてないよね。
ループとか分岐の指定をする専用タグがある時点でアウトでしょ。
0181nobodyさん02/04/01 04:31ID:???
それにしてもHTML::Templateはかなり使えると思う
0182Dream ★02/04/01 06:40ID:???
>>181
うん、いい感じですね。
コンテンツ大きいとオーバーヘッドがきつそうだけど、アクセスがそんなに
負荷になっていないサーバだと、大丈夫なのかな?
とにかく、面白そうなものを教えて下さって、ありがとう>All
0183nobodyさん02/04/01 09:29ID:???
HTML::Templateってcgiでしょ?
うちは、/cgi-bin/以下に置かなきゃいけないから、いやん。
0184 ◆AngelBlk 02/04/01 11:00ID:???
Smartyだけど、青マンモス本にリファレンス載ってるみたい。
誰か買った人います?
どんな感じか教えてほしいのだけど。

会社の帰りにでも、探してみるかなぁ・・・。
0185102/04/01 14:08ID:ALawDKoI
>>179
取り込むというと…?
{include file='includefile'}
みたいなことは出来ますけど、たぶん違いますよね。

>>184
マンモス本ってなんですか?? オライリー?
0186nobodyさん02/04/01 16:33ID:SClNMZpg
>>185
お返事ありがとうございます。

ただ、現在のページをheder,left,bottomに分けて、そこをテンプレートにして管理したいだけなんですけど
Smartyだとやり方がよくわからなくて…。
0187102/04/01 17:11ID:ALawDKoI
>>186

別のファイルが差し込めればいいんですよね。

---- header.html ----
<h1>へっだー</h1>
---------------------

というヘッダー部があるとして、本文のテンプレート(例えばbody.html)に

---- body.html ----
<html>
〜 省略 〜
<body>
{include file='header.html'}
〜 本文 〜
</body>
</html>
-------------------
とすることで、body.htmlにheader.htmlが差し込まれた形で処理されます。
0188nobodyさん02/04/01 18:34ID:eCkZiEpB
青マンモス本でSmartyがどんなふうに取り上げられてるの?(近くで売ってないので)
Smartyのマニュアル和訳とかしてwebにあげようと思ってたんだけどなー(´д`;)7割はオワッタ
0189nobodyさん02/04/01 18:55ID:???
>>188
おーすげえ。まんせー。
0190nobodyさん02/04/01 19:41ID:jOov+muS
>>187
お返事ありがとうございます。

index.tplにheader.html等組み込むのはいいのですが、コンテンツを
各webページごとに入れ込む場合、テンプレートの方でなく、index.phpなどの方に入れ込むと思うのですが、その入れ込み方がマニュアルを見ても乗ってないというか、わからないというか...

例えば、index.phpのコンテンツ部分をindex.txtから取り込むには、ファイルを読んで、それを$contentsに入れ込んで、$smartyに渡すということをすればいいのでしょうか?...自分でもよくわからないです...

>>188
すごいですね。upしたら教えて下さい。
というか、途中でも、upすれば、リバイズとか助けられると思いますよ。
0191 ◆AngelBlk 02/04/01 23:16ID:???
>185
オライリーではなく。
PHP徹底攻略:実戦編のこと。
http://books.softbank.co.jp/bm_detail.asp?sku=4797315199
これ。

昼休みに買いに行ったら、店が休みだった・・・(涙

>188
目次みたら、リファレンスのところにSmartyって書いてあったよ。
でも、使い方和訳したならきぼーん。
0192 ◆AngelBlk 02/04/01 23:27ID:???
書き忘れ。
PHPusersMLより青マンモス本の目次。

http://www.geocities.jp/rui_hirokawa/php/php-book2/toc.html

多分、明日買ってきます。
0193nobodyさん02/04/02 06:01ID:???
>>190
話はずれるけど、DBからデータを取ってくるのとCVSなtextファイルからデータ取ってくるのどっちの
方が早いのかね?
0194102/04/02 09:55ID:IYI5YDp3
>>190
うーん、それはSmartyというよりPHPでゴリゴリ書くしかないですね。

---- main.html ----
<html>
<body>
{$contents}
</body>
</html>
-------------------
というテンプレートに

---- index.php ----
require("Smarty.class.php");
$smarty = new Smarty;
$fp = fopen("index.txt","r");
$smarty->assign("contents", fread($fp, filesize("index.txt"));
fclose ($fp);
$smarty->display("main.html");
-------------------

こんなかんじなのかな?
すいません、>>190さんの言いたいことがよくわかってないかもです。

>>188
ぜひUPして下さい。日本語のSmartyサイトが1件も検索に引っ掛かってこない現状
は寂しいです。
0195__02/04/02 10:01ID:hdBuJcW1
.NETつかえば?
0196nobodyさん02/04/02 10:11ID:6uavVYCo
>>194
わざわざコードまでありがとうございます。
これを参考に自分で書いてみます。

Smartyは、もうちょっとwebサイトに色々情報が欲しいなぁ〜と思いました。
MLの過去ログを見ても、やっぱりサンプルが足りないと言う人や、Smartyを使っているサイトを
教えてという人や、themeを作ろうなんて人もいました。
色々プラグインなんかもシェアできたら、便利そうですよね?

現在新しいサイトをオープンしているようですね。
http://smarty.php.net/

日本のサイトを作ったらまずいのかな?


0197 ◆AngelBlk 02/04/02 11:34ID:???
>196
別にまずいってことは無いのでは?
個人のそう言う動きを制約するものは無いはず。
0198 ◆AngelBlk 02/04/02 12:55ID:QT5eEfAO
昼休みに青マンモス買ってきました。
Smartyは完全にリファレンスだけ(公開メソッドとか関数の一覧)
なんで、>188さんがマニュアル作ってくれたなら是非ともアップしてほしい。
0199 ◆AngelBlk 02/04/02 17:35ID:???
って連続かきこスマソ。
青マンモス本ですが
Part-1 Chapter-5 Templates
ってのがSmartyの事でした。

でも、本を買えない人もいるし
やっぱ>188さんには公開してほしいですね。
0200nobodyさん02/04/02 22:29ID:???
私も青マンモス本買って来ました。
マニュアルには書いていないことが書いてありわかりやすくて良さそうです。
#まだちゃんと読んでいない。

が、マニュアルのように詳しくないので、どちらも必要と思われます。
>>188さん、私もきぼーんです。
020118802/04/02 23:11ID:R/mGCLUs
>>190
こういう感じの事かなぁ、と憶測で。

例えば、左側にメニューがあって右側その内容が表示されるサイトの場合ですが、
まず全体のテンプレートを用意しておいて、

<!--body.tpl-->
{include file="header.tpl"}
<table>
<tr><td>
{include file="$left"}
</td><td>
{include file="$right"}
</td></tr>
</table>
{include file="footer.tpl"}
020218802/04/02 23:12ID:R/mGCLUs
続き。
PHPスクリプトからは、
// index.php
$smarty->assign("left","menu.tpl");
$smarty->assign("right","welcome.tpl");
$smarty->display("body.tpl","welcome");
として最初のwelcomeページを表示し、

次にメニューをクリック、そのリンク先がnews.phpだった場合
// news.php
$smarty->assign("left","menu.tpl");
$smarty->assign("right","news.tpl");
$smarty->display("body.tpl","news");

というような事が出来ます。

Smartyのキャッシュを有効にしてると、同じテンプレート(body.tpl)からは
キャッシュファイルは1つしか生成されないので、news.phpに行っても
最初に表示されたwelcomeページがまた表示されてしまうんですが、
displayメソッドの第2引数に各ページでユニークなキャッシュIDを渡す事でそれを防げます。


えーと、マニュアルは、もともと公開する目的で作ってたんで。
もうちょっとしたら公開できると思います。
0203nobodyさん02/04/02 23:22ID:6uavVYCo
>>201
>>202
すごい!こんなことができるんですね。ありがとうございます。

この方法だと、ファイルオープンの処理をしなくてもOKですねぇ。
ちょっと、コーディングして試してみます!

マニュアル公開、嬉しいです。
#ちなみに、翻訳ソフトに通してから、修正ですか?一つ一つ翻訳ですか?
0204nobodyさん02/04/03 03:36ID:w0fKgoFn
>>202さんの通りにやったらできましたー。感謝、感謝。

すごいなsmartyって。
0205102/04/03 08:25ID:n4eJMQ5/
>>201 = 188
うは、そんな使い方出来るんですね!
と思ってよくマニュアル見たらしっかり書いてありましたね。
>>196さんゴメソ。

そろそろスレ違いな感もなきにしもあらずなのでSmartyでスレッド立てようと
思いますがいかがでしょう?
0206nobodyさん02/04/03 09:52ID:???
>>205
べつにいいんじゃない?ネタ引っ張っていけるんだったら立てても。
0207nobodyさん02/04/03 14:54ID:???
>>205 AAの準備は万端です
0208nobodyさん02/04/03 15:50ID:w0fKgoFn
>>205
こういう使い方マニュアルに書いてありました?
4回位読んだのになぁ。でも、1さんいろいろありがとう。
CSVなテキストからデータを読むには
>>194なやり方が必要と思われるので。

スレ立て賛成です。
Smarty使いが増えるかも。
Smarty使いって、スマーターって言うのかな?
あー、いやらしい。
0209nobody02/04/04 15:43ID:???
Smartyの話題がでてるけど、、、

漏れも1年ちょい前から同じようなコンセプトで
PHP用のテンプレートクラスを作っています。
Smartyとの共通点は、いったんテンプレートファイルを
PHPスクリプトに変換することです。
Smartyとの違いはHTML側に書く特殊タグの種類を4種類に
限定することによって、デザイナーでもテンプレートを
書けるということです。
最近いろんなかたの助言によってとても安定&高速になってきました。
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php
0210nobodyさん02/04/04 18:35ID:???
>>209
かなり良さそうです。特にドキュメントビルダーのあたり。

Smartyとのスピード比較きぼーん。
0211nobody02/04/04 18:44ID:???
>>210
現在、ベンチマーク比較のページを執筆中ですが、
単純なHello world 程度の小規模のサンプルで実験した場合、
僕のほうがSmartyの約3倍速いです。
(機能は僕のクラスのほうがシンプルなのですが。)

また、かの有名なFast Templateよりも1.5倍ぐらい速いです。

ベンチマークのページを書き終えたら、また直リンします。
0212nobodyさん02/04/04 23:43ID:???
>>211
返事はやいですね。ベンチすごいですね。大規模はどなんでしょ?
シンプルでとっつきやすいですし、なにより日本語なのがうれしいですね。


0213nobody02/04/05 01:36ID:???
大規模なテストは、それぞれのテンプレートをバリバリ
使いこなしている人に最適化されたスクリプトを書いてもらわないと
テストの意味がないので、僕独りでは難しいです。

ただし、僕の作ったクラスにもSmartyのようにテンプレートを
パースした結果をファイルに保存して2回目以降はパースしないで
済むオプション機能を実装しています。
ので、その機能を使えば大きなテンプレートでも問題なく使える
とは思います。
0214nobodyさん02/04/05 08:17ID:???
>>213
大規模の比較は、一人では難しいとのことですが、開発はどのように行っているのですか?

webページを見ましたが、開発への参加募集はしていますか?
独自MLもないように見えます。PHP-users-MLベースで開発しているのでしょうか?
0215nobody02/04/07 21:56ID:???
コーディングは現在僕独り。その他、パッチを変えてくれる人もいますl
また、罫線案をメールや掲示板でいただきます。
みなさまの協力の上に原始的な手法でかいはつをすすめているところです。
0216nobodyさん02/04/07 22:27ID:hI7aRZHK
デザインはFLASHで、テキストはアクションスクリプト、CGI、PHPでという分け方もありだと思いますが、どうでしょうか?
利用されている頻度は少ないですが。
0217nobodyさん02/04/08 02:53ID:jy9kIRbx
新しいFlash、悪くないと思うが。
今度クライアントに提案するシステム(イントラだが)は、
インターフェイスを、全面的にFlashで行こうかと。
0218nobody02/04/08 03:39ID:???
自作テンプレートクラス@PHP版のベンチマークテストを取ってみました。

Smarty,Fast Templateよりもはやいです。

http://hoover.ktplan.ne.jp/kaihatsu/php_en/index.php?type=doc&txt=bench
0219nobodyさん02/04/08 04:12ID:???
>>218
ベンチマーク・テストありがとうございます!
すごいですね、これ。僕もsmartyでサイト作っているところなんで、HTMLテンプレート版も
作ってベンチマークしてみよっかなぁ。
0220nobodyさん02/04/08 04:42ID:???
>>218
typoが多いよ・・・
0221nobodyさん02/04/08 04:50ID:a4RoISwK
PHPってHTMLに直接コードを書けるのが売りなのに(売りとは思わんが)、
わざわざ言語使用に反して分ける時点でもう破綻しちゃってるよNE!
0222nobodyさん02/04/08 05:47ID:???
PHPは手段であって目的ではないのだから別に破綻していることにはならんでしょう。
0223nobodyさん02/04/08 06:58ID:???
言語仕様を使い切らないと無意味と考えるのは痛いな。
0224 ◆AngelBlk 02/04/08 08:42ID:???
確かに、初期段階では221が言ってるように
HTMLにコードかけるってことが売りだったかもしれないけど
今となってはそれもどうでもいいような気が。

実際自分がコーディングしてて思うけど
やっぱりデザイン部分はわかれていたほうがやりやすいし。

まあ、適材適所。
当たり前のことだけど、使い分け出来ないやつは氏ってことで。
0225nobodyさん02/04/08 13:27ID:+OQca7Zg
>>218
うーん、今のご時世で速さを売りしても余り意味がないような気が…
どのみち機能が増えてエンジン自体が肥大していけば重くなるのは避けられないから
開発途上の今の状態でどれだけ速くても「うん、まあ当然だよね」としか言えない。
そもそもサーバサイドの処理が重くて悩むのって、PHP使ってる向きには少ないと思う。

それよかコードの記述性と可読性が他のテンプレートエンジンと比べてどう優れてるのか
教えて欲しい。
サイトをざっと見た限りでは、Smartyのサブセットの域を出てないように思う。
0226nobody02/04/09 01:53ID:???
>>220
ごめんなさい、いま直しました。
文法のほうについては責任をもてません。MS WORDで単語チェックした
だけです。

>>225
テンプレートの書きやすさが自分のものの特徴と思います。
プログラミングを知らないデザイナーにも5分程度で教える
ことができます。
0227nobodyさん02/04/09 07:16ID:GMnXZpQb
age
0228nobody02/04/09 10:26ID:???
さらにバージョンアップして高速になったYO!
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php
0229nobodyさん02/04/09 11:26ID:???
Smartyもそうなんだが、サンプルがないから、とっつきづらい。

実際の運用サイトの雛型とか、携帯での運用の場合のサンプルとかあると
とてもうれし。
0230nobody02/04/09 12:09ID:???
228ですが、、、サンプルとしてどんなものが適当と思われますか?
例のための例をあげてもなかなかわかりにくいだろうし、
実際の現場で使われているものになると中規模すぎて説明が
大変になります。
悩ましいところです。
僕のサイトでのPEARを使ったリスト表示サンプルはどうですか?
http://hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=dbsample
023118802/04/09 12:51ID:???
>>229
少し前にSmarty-GENERALで、Smartyを使って制作したサイトの
ソースが公開されてました。もしかしたら参考になるかも。

http://marc.theaimsgroup.com/?l=smarty-general&m=101761480326238&w=2
0232nobodyさん02/04/09 13:38ID:???
PHPばかりでつまらんのう、そろそろスレの本題に戻してホスィ

つか、>>228のあからさまな宣伝が鼻につく。宣伝したけりゃ自分でスレ立てれ。
023318802/04/09 13:57ID:???
>>232
そーいえばここ、PHPスレじゃなかったですね。
やはりそろそろ、「デザインとロジックの分離 with PHP」みたいな
別スレ作って移動しますか?
あ、テンプレートって文字を入れたほうがいいのかも。
どうしましょうか、新スレのタイトル案。
0234nobodyさん02/04/10 01:30ID:???
>>233
テンプレートエンジン(PHP)とか?
話題自体smartyかHTMLテンプレートしかでないから、「smarty と HTMLテンプレート」とか。
デザインとロジックの分離自体あまりしてないような感じだし。

>>232
宣伝でもよいと思われ。それで稼ごうとかでなければ、むしろ歓迎。
0235nobodyさん02/04/12 11:44ID:???
>>234
そろそろ、スレ立てませんか?
0236nobodyさん02/04/12 12:01ID:wN+/eHS+
PHP以外で興味がある人が少ないってだけじゃないの?
文句しか言わないでネタ振りもしない>>232に萎え。
0237nobodyさん02/04/12 12:06ID:???
細分化して単発スレばかりになるのもどうかと思うけどな
腐るほどPHP関連のスレあるわけだし
0238nobodyさん02/04/12 12:56ID:???
>237
っていうか、この板相変わらず
人少なそうだしね・・・。
0239nobodyさん02/04/12 23:35ID:???
じゃ、とりあえず、このスレで、テンプレート関係の話をしますか。

「コンテンツとデザインの分離」関係の話は出尽くした感があるし。
0240nobodyさん02/04/14 21:28ID:???
>>231
thanx.
見てみました。さらっと見ましたが、色々なコードがありましたねぇ。
ちょっとどうなってるか、よくわからんので、じっくり見てみます。
0241nobodyさん02/04/15 01:52ID:???
結局、PHPはちょっとしたことには便利なんだけどさ、大規模向きだとツライ。
Perlよりはマシにしろ、メンテしづらいし。
0242nobodyさん02/04/15 06:31ID:???
>>241
そんな時のテンプレ・エンジンじゃないの?
0243 ◆AngelBlk 02/04/15 09:59ID:???
>241
具体的にどのあたりが?
0244nobodyさん02/04/24 07:52ID:???
>>243
HTMLにプログラム書くところ。
0245nobodyさん02/05/03 02:55ID:???
smarty 2.1 age
0246nobodyさん02/05/03 15:46ID:???
やっと{myfunc}...{/myfunc}みたいなカスタムタグが定義できるようになって
プラグインの幅が広がった感じ。

つーか、2.1.0に対応したほんにゃくマニュアル完成ヽ(´ー`)ノ
近日サイトage。(予定)
0247nobodyさん02/05/04 00:15ID:???
>>246
おおー!期待大。ありがたや、ありがたや。

http://smarty.php.net/ 完成しつつあるage.
0248narucy56 ◆wMOjCT4s 02/05/04 11:08ID:vTPrP0BI
WEBアプリケーションサーバとしてのWALRUS
http://www.brain-tokyo.jp/~research/koutetu/manual/summary/gaiyou/gaiyo4.html

これはよさげ!!
0249nobodyさん02/05/04 15:27ID:d0uaPpR2
>>248
それだけ貼られてもよくわからん
どこがどういいのよ
0250nobodyさん02/05/04 19:22ID:???
>>248
ロクにリファレンスも揃ってないのに『どう』いいんだ?
他スレでもあんたのカキコみるけど、名無しに戻ってほしいコテハンに+1
0251nobodyさん02/05/04 21:29ID:???
>>248
Ruby使えるサーバってあんまりないと思うんだけど、どうなの?
0252nobodyさん02/05/05 22:19ID:ITpza3EM
配列の展開だけじゃなく、
条件によってテンプレートの一部を表示したりしなかったりもできるみたいだ。

http://kari.to/walrus/demo/demo4
説明は不親切だが、このデモのソースをよく読んだらわかってきた。
このテンプレート展開のやり方はいいかもしれない。
0253nobodyさん02/05/06 04:38ID:G0jBHwom
PHPに対するPHPテンプレートの優位性って何?
いくつか見てみたけど、 PHPだけでいいような気がしてならない
というより、PHPよりテンプレート用言語(笑)を覚える手間が
増えてるだけのような
0254 ◆AngelBlk 02/05/06 18:00ID:???
>253
デザインの変更に対する対応が容易になる。
仕事で明日までにデザイン変えてとか言われると
普通にPHPコード埋め込んでやってると死ぬよ・・・。
0255nobodyさん02/05/08 12:20ID:???
SmartyでPHP-nukeのthemesを使えねーかと思ったことあるんだけど、できるかな?

クリック一つでデザインを変られる…みたいな。
025625302/05/10 11:37ID:49KcfInZ
>>254
PHPでもあらかじめ注意して分けてれば、対応できるんじゃない?
functionとかincludeとかprependとか使えば。
強制的に分離させる(HTML中にはあまり難しいコードはかけない)ってところが
みそなのか?

PHPってもともとHTMLをちょっとだけ変える、とかに向いてるし
Smarty とかは[PHPもどき]にしか思えないんだけど
<?=$hoge ?> が {$hoge} になってるだけ、とおもえた。
HTMLタグの記号じゃないところがみそなのか?

結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと
分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ)
0257 ◆AngelBlk 02/05/10 14:19ID:???
>256
>結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと
>分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ)
激しく同意。

確かに、Smartyは少し方向性が違うな、と思った。
(少なくとも自分が求めているものとは、かな)

自分一人で作るにしても、テンプレートの方には
出来るだけコードっぽいもの書きたくない・・・。
0258nobodyさん02/05/10 16:10ID:???
Smartyのテンプレート言語って単純じゃないですか?
プラグインによって+αの機能を多く実装してますが、
プログラム的なものは分岐式とループぐらいだと思います。
(これは他のテンプレートエンジンもそうですが)

ロジックが露出してしまいそうな部分は、カスタムタグを提供する事で
対処する事ができます。

#テンプレートに渡された連想配列からツリー形式のメニューを
#動的に生成しようとするとテンプレート側で分岐やループを駆使する事になるので、
#これを何とかするタグが作れないか考案中。
0259nobodyさん02/05/10 21:51ID:/cNgrcGu
>>253
PHPってもともとそういうものだからな。
0260nobodyさん02/05/11 01:40ID:???
>>259
なのにそのPHPでテンプレートを開発している奴らの目標は何かと問いつめたい

ただ、{?php xxxx ?}みたいなタグじゃない形で PHP が実行できると
便利な場合もあるなと思った
0261nobodyさん02/05/11 04:38ID:???
>>260
やっぱり、いかにプログラマとデザイナーの作業に分けるかでしょ。
じゃあ、PHPがHTML埋め込み型言語である理由って何?とか言われると
すごい小さいアプリなら、てっとり早くでっちあげるのには便利かなー、って
くらいしか思いつかない。
個人的には、PHPはHTML埋め込み"可能"言語であって、
スクリプト内にHTMLを埋め込もうと思えば、あくまでも"可能"であるって
ぐらいの認識かなぁ。

自分がずっとSmartyを推してる理由は、変数置換や繰り返し以外にも、
プラグイン追加による機能拡張や、テンプレートの出力を一部キャッシュして
パフォーマンスを上げたりする事が可能だから。
静的コンテンツを動的に生成したい時とか本当に便利。
0262nobodyさん02/05/11 16:18ID:???
Smartyとかの情報ってどこから仕入れてくるの?
みんな何でSmaryの存在を知ることができたの?

どこかにテンプレートエンジンのリンク集があるのかな。
0263 ◆AngelBlk 02/05/11 17:10ID:???
話がループ気味です。

>262
http://smarty.php.net/
とか。

あと、割と最近でた青マンモス本にもSmartyの記事あったよ。
0264narucy56 ◆wMOjCT4s 02/05/12 11:17ID:215DjCeq
ロジックとデザインの分離で、面白いアプローチとしては、


Walrus
http://210.155.146.159/walrus/demo/

拡張タグも何も要らない、普通に書いたHTMLを (属性名 id を利用して)
ロジックから出力された文字列を展開して、表示してしまおうというアイデア。

利点としては、HTML に全くロジックが絡まないので、デザインしやすいという
ことだろうか。

とはいえ、デザイン中に書ける繰り返し要素は、一回だけ。
--

<ul>
<li id=list>さかな</li>
</ul>

def list
[ "たこ", "いか", "めんたいこ" ]
end

<ul>
<li>たこ
<li>いか
<li>めんたいこ
</ul>

---

<li>が一回しか書けないのは欠点だなと思った。

0265nobodyさん02/05/13 04:02ID:???
>>261
PHPを使ったテンプレート

http://hoge.com/test.php
とかの場合

test.phpの内容
<?
$title = "test";
include("template.php");
?>

template.php の内容
<HTML>
<HEAD><TITLE><?=$title ?></TITLE></HEAD>
<BODY><H1><?=$title ?></H1></BODY>
</HTML>

smarty とかよりこんなのじゃだめなの?
0266nobodyさん02/05/13 12:31ID:???
>>265
条件分岐や繰り返しのある表現をしようと思うとムリがありますよね。

全てのテンプレートエンジンがそうなのかは分かりませんが、少なくとも
Smartyが提供するものは
"PHPスクリプト内にHTMLタグを書かなくて済むような仕組み"
なわけで、デザイナーとプログラマの作業分担云々へのメリットは副次的な
効果だと思う次第です。

PHPスクリプトの可読性を上げ、より保守しやすい環境を目指した仕組みな
わけで、誤解を恐れず言えば、プログラマーが楽をするためのフレームワーク
であると言っても過言ではないと思います。
0267nobodyさん02/05/13 19:33ID:???
>>266
Smartyはデザイナとプログラマの分業を重要な目的の一つとして
制作されたので、副次的に生まれた効果ではないです。

あと、PHPスクリプトにHTMLが混入するテンプレートエンジンなんて
存在し得ないと思うんですが。揚げられたものは全て
テンプレートエンジンが最低限実装すべきもののような気がします。
0268nobodyさん02/05/13 20:12ID:???
DB連携がスマートにできるやつがいいね。
商用だけど、WebObjectsのフレームワークは、目から鱗。
0269nobodyさん02/05/13 20:12ID:???
>>266
>条件分岐や繰り返しのある表現をしようと思うとムリがありますよね。
いや、PHPそのままかけるんだから
for() でも while() でも書けばいいんでないの?
smarty タグとかでも同じ事をやる訳じゃないの?
template.php 内で include してもいいし、関数を呼んでもいい。

template.php 内には
<table>
<? foreach($osakana as $syurui=>$nedan ){ ?>
<tr><th><?=$syurui ?></th><td><?=$nedan ?></td></tr>
<? } ?>
</table>
みたいな感じだけで

smarty だって selectionタグってな foreach のまがい物みたいなの使うんでしょ?
0270nobodyさん02/05/13 20:19ID:???
smarty のプラグインで何かおもしろい機能があるのか?
0271nobodyさん02/05/13 20:58ID:???
>>266じゃないが、Smartyはかなりプログラマよりの仕様になっていることは確か
自分たちの必要に迫られて作った→いろいろ揉まれて良い物ができた→公開した
という流れらしいしね

>>267
PHPを対象としたものでなければ存在するんだな、これが
仮にPHPに対象を絞ったとしても、存在し得ないだのすべきものだの
断定的な事がよく言えたもんだ

>>268
裏でどんなSQL投げてるか想像すると吐き気がしないか?

>>269
そんな方法を採らなければいけないことが無理があるって事だと思うが…
いびつだと思わないか?もう一度>>1を読んでみろ

http://www.phpinsider.com/php/code/Smarty/docs/preface.html
とりあえずこの辺読んだ方が早い。
読んでも理解できなければテンプレートエンジンのことは忘れろ
お互いのためだ

だいたい200を超えたスレでいまさら
> いや、PHPそのままかけるんだから

こういうアホなことを言うな
0272nobodyさん02/05/13 21:31ID:???
>>271
>裏でどんなSQL投げてるか想像すると吐き気がしないか?

全部モニタリングできるし、必要に応じてカスタマイズもできるよ。
10年以上の実績あるから、信用できる。
そのへんのプログラマにSQL書かせるほうが遙かに吐き気がしないか?
0273nobodyさん02/05/13 22:16ID:???
>>272
詳しくしらんが、NeXT時代から数えても10年以上はいいすぎだろ

吐き気を催すようなSQLしか書けないプログラマにサーバサイドアプリ
書かせるなんざ論外
0274nobodyさん02/05/13 22:18ID:???
>>271
混入してしまった時点でその部分のコードは相手方の
手から離れてしまっているので分担とは言えないような。
Javaですか?そのエンジンが持つ、専用のスクリプトの事じゃないですよね。
そのテンプレートエンジンを教えていただけますか?
0275nobodyさん02/05/13 22:49ID:???
>>274
わざわざ機能不足な物を知ってどうする?
なにかメリットあるのか?
最新Verでどうなってるかまで知らないし、そこまでわざわざ調べるつもりもない
興味本位なら自分で探せ

そもそも俺が言いたいのは、自分が見たことがない = 存在しない などという傲慢な
考え方はするなって事だ
0276nobodyさん02/05/13 23:42ID:???
>>275
それは機能不足だと思うんですか?
明らかに分析が間違っているのに公開されてるような
イレギュラーなフレームワークを話題に持ち出すのは
どうなんでしょうね。

あと、最後のように間違って解釈される方がいないように
"し得ない"という表現を用いています。伝わらなかったようですが。
0277nobodyさん02/05/13 23:58ID:???
>吐き気を催すようなSQLしか書けないプログラマにサーバサイドアプリ
>書かせるなんざ論外

いい開発者+いいフレームワーク=(゚д゚)ウマー
0278nobodyさん02/05/14 00:47ID:???
>>276
誰が話題に持ち出してるんだ?

分析云々偉そうなこと言いなさんな、初期のテンプレートエンジンなんざ
全部文字列置換に毛が生えた代物だらけだったからな
まあ、その程度でも十二分に便利な奴もいるし、現在メインで使ってる奴もいる
(間違いなくいる、しかもかなりな数で)所詮は適材適所ってこった

ともかく自分の常識から外れたら全てイレギュラーとは恐れ入った
何に対してもずいぶん自信がおありと見える

微妙にスレ違いだから、お前にはここまで
0279nobodyさん02/05/14 02:01ID:???
>>278
オマエモナー
0280nobodyさん02/05/14 02:13ID:???
>>278
>PHPを対象としたものでなければ存在するんだな
あなたが、私がそんなものは存在しないと断定したと勘違いし
テンプレートエンジンの存在を持ち出してきていますね。

変数置換しか出来ない云々、そういう話でしたか?
スクリプト内にHTMLが混入するという話ですね。
それこそ、”誰が話題に持ち出してるんだ?”のような・・・。

#文字列置換はテンプレートファイルに書かれたタグを
#置換するもの。しっかり分担されてますね。

>ともかく自分の常識から外れたら全てイレギュラーとは恐れ入った
あなたが機能不足と判断したのであって、私の常識で言っているのではないですね。
その在り処を知らない、その実装理由も知らない、
ただそうなっていたのを見たことがある、だけでは何の力もありませんよ。
さらに私のイレギュラーの定義ですが、勝手に思い込みすぎですよ。
そんな事いってないですね。

#私が知りたいのは機能よりも、何故そうしたかという理由です。
#もし正当な理由なく、なんとなくそうなったのであれば
#それは一般に公開されるようなフレームワークと呼ぶものではないですね。
■ このスレッドは過去ログ倉庫に格納されています