- 1 名前:名無しさん@お腹いっぱい。 [2001/05/27(日) 17:59 ID:6pK8snWA]
- ASPでもPHPでもPerlでもJavaでも形こそ違えど結局は可変部を吐き出すための
<%〜%>やらprint文の嵐になってしまう。 「HTMLはHTML、プログラムはプログラムと完全に分離する方法はないものか。」 を話し合うスレッドです。
- 184 名前: ◆AngelBlk mailto:sage [02/04/01 11:00 ID:???]
- Smartyだけど、青マンモス本にリファレンス載ってるみたい。
誰か買った人います? どんな感じか教えてほしいのだけど。 会社の帰りにでも、探してみるかなぁ・・・。
- 185 名前:1 [02/04/01 14:08 ID:ALawDKoI]
- >>179
取り込むというと…? {include file='includefile'} みたいなことは出来ますけど、たぶん違いますよね。 >>184 マンモス本ってなんですか?? オライリー?
- 186 名前:nobodyさん [02/04/01 16:33 ID:SClNMZpg]
- >>185
お返事ありがとうございます。 ただ、現在のページをheder,left,bottomに分けて、そこをテンプレートにして管理したいだけなんですけど Smartyだとやり方がよくわからなくて…。
- 187 名前:1 [02/04/01 17:11 ID:ALawDKoI]
- >>186
別のファイルが差し込めればいいんですよね。 ---- header.html ---- <h1>へっだー</h1> --------------------- というヘッダー部があるとして、本文のテンプレート(例えばbody.html)に ---- body.html ---- <html> 〜 省略 〜 <body> {include file='header.html'} 〜 本文 〜 </body> </html> ------------------- とすることで、body.htmlにheader.htmlが差し込まれた形で処理されます。
- 188 名前:nobodyさん [02/04/01 18:34 ID:eCkZiEpB]
- 青マンモス本でSmartyがどんなふうに取り上げられてるの?(近くで売ってないので)
Smartyのマニュアル和訳とかしてwebにあげようと思ってたんだけどなー(´д`;)7割はオワッタ
- 189 名前:nobodyさん mailto:sage [02/04/01 18:55 ID:???]
- >>188
おーすげえ。まんせー。
- 190 名前:nobodyさん [02/04/01 19:41 ID:jOov+muS]
- >>187
お返事ありがとうございます。 index.tplにheader.html等組み込むのはいいのですが、コンテンツを 各webページごとに入れ込む場合、テンプレートの方でなく、index.phpなどの方に入れ込むと思うのですが、その入れ込み方がマニュアルを見ても乗ってないというか、わからないというか... 例えば、index.phpのコンテンツ部分をindex.txtから取り込むには、ファイルを読んで、それを$contentsに入れ込んで、$smartyに渡すということをすればいいのでしょうか?...自分でもよくわからないです... >>188 すごいですね。upしたら教えて下さい。 というか、途中でも、upすれば、リバイズとか助けられると思いますよ。
- 191 名前: ◆AngelBlk mailto:sage [02/04/01 23:16 ID:???]
- >185
オライリーではなく。 PHP徹底攻略:実戦編のこと。 books.softbank.co.jp/bm_detail.asp?sku=4797315199 これ。 昼休みに買いに行ったら、店が休みだった・・・(涙 >188 目次みたら、リファレンスのところにSmartyって書いてあったよ。 でも、使い方和訳したならきぼーん。
- 192 名前: ◆AngelBlk mailto:sage [02/04/01 23:27 ID:???]
- 書き忘れ。
PHPusersMLより青マンモス本の目次。 www.geocities.jp/rui_hirokawa/php/php-book2/toc.html 多分、明日買ってきます。
- 193 名前:nobodyさん mailto:12 [02/04/02 06:01 ID:???]
- >>190
話はずれるけど、DBからデータを取ってくるのとCVSなtextファイルからデータ取ってくるのどっちの 方が早いのかね?
- 194 名前:1 [02/04/02 09:55 ID: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件も検索に引っ掛かってこない現状 は寂しいです。
- 195 名前:__ [02/04/02 10:01 ID:hdBuJcW1]
- .NETつかえば?
- 196 名前:nobodyさん [02/04/02 10:11 ID:6uavVYCo]
- >>194
わざわざコードまでありがとうございます。 これを参考に自分で書いてみます。 Smartyは、もうちょっとwebサイトに色々情報が欲しいなぁ〜と思いました。 MLの過去ログを見ても、やっぱりサンプルが足りないと言う人や、Smartyを使っているサイトを 教えてという人や、themeを作ろうなんて人もいました。 色々プラグインなんかもシェアできたら、便利そうですよね? 現在新しいサイトをオープンしているようですね。 smarty.php.net/ 日本のサイトを作ったらまずいのかな?
- 197 名前: ◆AngelBlk mailto:sage [02/04/02 11:34 ID:???]
- >196
別にまずいってことは無いのでは? 個人のそう言う動きを制約するものは無いはず。
- 198 名前: ◆AngelBlk [02/04/02 12:55 ID:QT5eEfAO]
- 昼休みに青マンモス買ってきました。
Smartyは完全にリファレンスだけ(公開メソッドとか関数の一覧) なんで、>188さんがマニュアル作ってくれたなら是非ともアップしてほしい。
- 199 名前: ◆AngelBlk mailto:sage [02/04/02 17:35 ID:???]
- って連続かきこスマソ。
青マンモス本ですが Part-1 Chapter-5 Templates ってのがSmartyの事でした。 でも、本を買えない人もいるし やっぱ>188さんには公開してほしいですね。
- 200 名前:nobodyさん mailto:12 [02/04/02 22:29 ID:???]
- 私も青マンモス本買って来ました。
マニュアルには書いていないことが書いてありわかりやすくて良さそうです。 #まだちゃんと読んでいない。 が、マニュアルのように詳しくないので、どちらも必要と思われます。 >>188さん、私もきぼーんです。
- 201 名前:188 [02/04/02 23:11 ID: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"}
- 202 名前:188 [02/04/02 23:12 ID: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を渡す事でそれを防げます。 えーと、マニュアルは、もともと公開する目的で作ってたんで。 もうちょっとしたら公開できると思います。
- 203 名前:nobodyさん [02/04/02 23:22 ID:6uavVYCo]
- >>201
>>202 すごい!こんなことができるんですね。ありがとうございます。 この方法だと、ファイルオープンの処理をしなくてもOKですねぇ。 ちょっと、コーディングして試してみます! マニュアル公開、嬉しいです。 #ちなみに、翻訳ソフトに通してから、修正ですか?一つ一つ翻訳ですか?
- 204 名前:nobodyさん [02/04/03 03:36 ID:w0fKgoFn]
- >>202さんの通りにやったらできましたー。感謝、感謝。
すごいなsmartyって。
- 205 名前:1 [02/04/03 08:25 ID:n4eJMQ5/]
- >>201 = 188
うは、そんな使い方出来るんですね! と思ってよくマニュアル見たらしっかり書いてありましたね。 >>196さんゴメソ。 そろそろスレ違いな感もなきにしもあらずなのでSmartyでスレッド立てようと 思いますがいかがでしょう?
- 206 名前:nobodyさん mailto:sage [02/04/03 09:52 ID:???]
- >>205
べつにいいんじゃない?ネタ引っ張っていけるんだったら立てても。
- 207 名前:nobodyさん mailto:sage [02/04/03 14:54 ID:???]
- >>205 AAの準備は万端です
- 208 名前:nobodyさん [02/04/03 15:50 ID:w0fKgoFn]
- >>205
こういう使い方マニュアルに書いてありました? 4回位読んだのになぁ。でも、1さんいろいろありがとう。 CSVなテキストからデータを読むには >>194なやり方が必要と思われるので。 スレ立て賛成です。 Smarty使いが増えるかも。 Smarty使いって、スマーターって言うのかな? あー、いやらしい。
- 209 名前:nobody mailto:@check [02/04/04 15:43 ID:???]
- Smartyの話題がでてるけど、、、
漏れも1年ちょい前から同じようなコンセプトで PHP用のテンプレートクラスを作っています。 Smartyとの共通点は、いったんテンプレートファイルを PHPスクリプトに変換することです。 Smartyとの違いはHTML側に書く特殊タグの種類を4種類に 限定することによって、デザイナーでもテンプレートを 書けるということです。 最近いろんなかたの助言によってとても安定&高速になってきました。 hoover.ktplan.ne.jp/kaihatsu/php/index.php
- 210 名前:nobodyさん mailto:12 [02/04/04 18:35 ID:???]
- >>209
かなり良さそうです。特にドキュメントビルダーのあたり。 Smartyとのスピード比較きぼーん。
- 211 名前:nobody mailto:@check [02/04/04 18:44 ID:???]
- >>210
現在、ベンチマーク比較のページを執筆中ですが、 単純なHello world 程度の小規模のサンプルで実験した場合、 僕のほうがSmartyの約3倍速いです。 (機能は僕のクラスのほうがシンプルなのですが。) また、かの有名なFast Templateよりも1.5倍ぐらい速いです。 ベンチマークのページを書き終えたら、また直リンします。
- 212 名前:nobodyさん mailto:12 [02/04/04 23:43 ID:???]
- >>211
返事はやいですね。ベンチすごいですね。大規模はどなんでしょ? シンプルでとっつきやすいですし、なにより日本語なのがうれしいですね。
- 213 名前:nobody mailto:@check [02/04/05 01:36 ID:???]
- 大規模なテストは、それぞれのテンプレートをバリバリ
使いこなしている人に最適化されたスクリプトを書いてもらわないと テストの意味がないので、僕独りでは難しいです。 ただし、僕の作ったクラスにもSmartyのようにテンプレートを パースした結果をファイルに保存して2回目以降はパースしないで 済むオプション機能を実装しています。 ので、その機能を使えば大きなテンプレートでも問題なく使える とは思います。
- 214 名前:nobodyさん mailto:12 [02/04/05 08:17 ID:???]
- >>213
大規模の比較は、一人では難しいとのことですが、開発はどのように行っているのですか? webページを見ましたが、開発への参加募集はしていますか? 独自MLもないように見えます。PHP-users-MLベースで開発しているのでしょうか?
- 215 名前:nobody mailto:@check [02/04/07 21:56 ID:???]
- コーディングは現在僕独り。その他、パッチを変えてくれる人もいますl
また、罫線案をメールや掲示板でいただきます。 みなさまの協力の上に原始的な手法でかいはつをすすめているところです。
- 216 名前:nobodyさん [02/04/07 22:27 ID:hI7aRZHK]
- デザインはFLASHで、テキストはアクションスクリプト、CGI、PHPでという分け方もありだと思いますが、どうでしょうか?
利用されている頻度は少ないですが。
- 217 名前:nobodyさん [02/04/08 02:53 ID:jy9kIRbx]
- 新しいFlash、悪くないと思うが。
今度クライアントに提案するシステム(イントラだが)は、 インターフェイスを、全面的にFlashで行こうかと。
- 218 名前:nobody mailto:@check [02/04/08 03:39 ID:???]
- 自作テンプレートクラス@PHP版のベンチマークテストを取ってみました。
Smarty,Fast Templateよりもはやいです。 hoover.ktplan.ne.jp/kaihatsu/php_en/index.php?type=doc&txt=bench
- 219 名前:nobodyさん mailto:12 [02/04/08 04:12 ID:???]
- >>218
ベンチマーク・テストありがとうございます! すごいですね、これ。僕もsmartyでサイト作っているところなんで、HTMLテンプレート版も 作ってベンチマークしてみよっかなぁ。
- 220 名前:nobodyさん mailto:sage [02/04/08 04:42 ID:???]
- >>218
typoが多いよ・・・
- 221 名前:nobodyさん [02/04/08 04:50 ID:a4RoISwK]
- PHPってHTMLに直接コードを書けるのが売りなのに(売りとは思わんが)、
わざわざ言語使用に反して分ける時点でもう破綻しちゃってるよNE!
- 222 名前:nobodyさん mailto:sage [02/04/08 05:47 ID:???]
- PHPは手段であって目的ではないのだから別に破綻していることにはならんでしょう。
- 223 名前:nobodyさん mailto:sage [02/04/08 06:58 ID:???]
- 言語仕様を使い切らないと無意味と考えるのは痛いな。
- 224 名前: ◆AngelBlk mailto:sage [02/04/08 08:42 ID:???]
- 確かに、初期段階では221が言ってるように
HTMLにコードかけるってことが売りだったかもしれないけど 今となってはそれもどうでもいいような気が。 実際自分がコーディングしてて思うけど やっぱりデザイン部分はわかれていたほうがやりやすいし。 まあ、適材適所。 当たり前のことだけど、使い分け出来ないやつは氏ってことで。
- 225 名前:nobodyさん [02/04/08 13:27 ID:+OQca7Zg]
- >>218
うーん、今のご時世で速さを売りしても余り意味がないような気が… どのみち機能が増えてエンジン自体が肥大していけば重くなるのは避けられないから 開発途上の今の状態でどれだけ速くても「うん、まあ当然だよね」としか言えない。 そもそもサーバサイドの処理が重くて悩むのって、PHP使ってる向きには少ないと思う。 それよかコードの記述性と可読性が他のテンプレートエンジンと比べてどう優れてるのか 教えて欲しい。 サイトをざっと見た限りでは、Smartyのサブセットの域を出てないように思う。
- 226 名前:nobody mailto:@check [02/04/09 01:53 ID:???]
- >>220
ごめんなさい、いま直しました。 文法のほうについては責任をもてません。MS WORDで単語チェックした だけです。 >>225 テンプレートの書きやすさが自分のものの特徴と思います。 プログラミングを知らないデザイナーにも5分程度で教える ことができます。
- 227 名前:nobodyさん [02/04/09 07:16 ID:GMnXZpQb]
- age
- 228 名前:nobody mailto:@check [02/04/09 10:26 ID:???]
- さらにバージョンアップして高速になったYO!
hoover.ktplan.ne.jp/kaihatsu/php/index.php
- 229 名前:nobodyさん mailto:12 [02/04/09 11:26 ID:???]
- Smartyもそうなんだが、サンプルがないから、とっつきづらい。
実際の運用サイトの雛型とか、携帯での運用の場合のサンプルとかあると とてもうれし。
- 230 名前:nobody mailto:@check [02/04/09 12:09 ID:???]
- 228ですが、、、サンプルとしてどんなものが適当と思われますか?
例のための例をあげてもなかなかわかりにくいだろうし、 実際の現場で使われているものになると中規模すぎて説明が 大変になります。 悩ましいところです。 僕のサイトでのPEARを使ったリスト表示サンプルはどうですか? hoover.ktplan.ne.jp/kaihatsu/php/index.php?type=doc&txt=dbsample
- 231 名前:188 mailto:sage [02/04/09 12:51 ID:???]
- >>229
少し前にSmarty-GENERALで、Smartyを使って制作したサイトの ソースが公開されてました。もしかしたら参考になるかも。 marc.theaimsgroup.com/?l=smarty-general&m=101761480326238&w=2
- 232 名前:nobodyさん mailto:sage [02/04/09 13:38 ID:???]
- PHPばかりでつまらんのう、そろそろスレの本題に戻してホスィ
つか、>>228のあからさまな宣伝が鼻につく。宣伝したけりゃ自分でスレ立てれ。
- 233 名前:188 mailto:sage [02/04/09 13:57 ID:???]
- >>232
そーいえばここ、PHPスレじゃなかったですね。 やはりそろそろ、「デザインとロジックの分離 with PHP」みたいな 別スレ作って移動しますか? あ、テンプレートって文字を入れたほうがいいのかも。 どうしましょうか、新スレのタイトル案。
- 234 名前:nobodyさん mailto:sage [02/04/10 01:30 ID:???]
- >>233
テンプレートエンジン(PHP)とか? 話題自体smartyかHTMLテンプレートしかでないから、「smarty と HTMLテンプレート」とか。 デザインとロジックの分離自体あまりしてないような感じだし。 >>232 宣伝でもよいと思われ。それで稼ごうとかでなければ、むしろ歓迎。
- 235 名前:nobodyさん mailto:age [02/04/12 11:44 ID:???]
- >>234
そろそろ、スレ立てませんか?
- 236 名前:nobodyさん [02/04/12 12:01 ID:wN+/eHS+]
- PHP以外で興味がある人が少ないってだけじゃないの?
文句しか言わないでネタ振りもしない>>232に萎え。
- 237 名前:nobodyさん mailto:sage [02/04/12 12:06 ID:???]
- 細分化して単発スレばかりになるのもどうかと思うけどな
腐るほどPHP関連のスレあるわけだし
- 238 名前:nobodyさん mailto:sage [02/04/12 12:56 ID:???]
- >237
っていうか、この板相変わらず 人少なそうだしね・・・。
- 239 名前:nobodyさん mailto:age [02/04/12 23:35 ID:???]
- じゃ、とりあえず、このスレで、テンプレート関係の話をしますか。
「コンテンツとデザインの分離」関係の話は出尽くした感があるし。
- 240 名前:nobodyさん mailto:age [02/04/14 21:28 ID:???]
- >>231
thanx. 見てみました。さらっと見ましたが、色々なコードがありましたねぇ。 ちょっとどうなってるか、よくわからんので、じっくり見てみます。
- 241 名前:nobodyさん mailto:sage [02/04/15 01:52 ID:???]
- 結局、PHPはちょっとしたことには便利なんだけどさ、大規模向きだとツライ。
Perlよりはマシにしろ、メンテしづらいし。
- 242 名前:nobodyさん mailto:age [02/04/15 06:31 ID:???]
- >>241
そんな時のテンプレ・エンジンじゃないの?
- 243 名前: ◆AngelBlk mailto:sage [02/04/15 09:59 ID:???]
- >241
具体的にどのあたりが?
- 244 名前:nobodyさん mailto:sage [02/04/24 07:52 ID:???]
- >>243
HTMLにプログラム書くところ。
- 245 名前:nobodyさん mailto:age [02/05/03 02:55 ID:???]
- smarty 2.1 age
- 246 名前:nobodyさん mailto:sage [02/05/03 15:46 ID:???]
- やっと{myfunc}...{/myfunc}みたいなカスタムタグが定義できるようになって
プラグインの幅が広がった感じ。 つーか、2.1.0に対応したほんにゃくマニュアル完成ヽ(´ー`)ノ 近日サイトage。(予定)
- 247 名前:nobodyさん mailto:age [02/05/04 00:15 ID:???]
- >>246
おおー!期待大。ありがたや、ありがたや。 smarty.php.net/ 完成しつつあるage.
- 248 名前:narucy56 ◆wMOjCT4s [02/05/04 11:08 ID:vTPrP0BI]
- WEBアプリケーションサーバとしてのWALRUS
www.brain-tokyo.jp/~research/koutetu/manual/summary/gaiyou/gaiyo4.html これはよさげ!!
- 249 名前:nobodyさん [02/05/04 15:27 ID:d0uaPpR2]
- >>248
それだけ貼られてもよくわからん どこがどういいのよ
- 250 名前:nobodyさん mailto:sage [02/05/04 19:22 ID:???]
- >>248
ロクにリファレンスも揃ってないのに『どう』いいんだ? 他スレでもあんたのカキコみるけど、名無しに戻ってほしいコテハンに+1
- 251 名前:nobodyさん mailto:sage [02/05/04 21:29 ID:???]
- >>248
Ruby使えるサーバってあんまりないと思うんだけど、どうなの?
- 252 名前:nobodyさん [02/05/05 22:19 ID:ITpza3EM]
- 配列の展開だけじゃなく、
条件によってテンプレートの一部を表示したりしなかったりもできるみたいだ。 kari.to/walrus/demo/demo4 説明は不親切だが、このデモのソースをよく読んだらわかってきた。 このテンプレート展開のやり方はいいかもしれない。
- 253 名前:nobodyさん [02/05/06 04:38 ID:G0jBHwom]
- PHPに対するPHPテンプレートの優位性って何?
いくつか見てみたけど、 PHPだけでいいような気がしてならない というより、PHPよりテンプレート用言語(笑)を覚える手間が 増えてるだけのような
- 254 名前: ◆AngelBlk mailto:sage [02/05/06 18:00 ID:???]
- >253
デザインの変更に対する対応が容易になる。 仕事で明日までにデザイン変えてとか言われると 普通にPHPコード埋め込んでやってると死ぬよ・・・。
- 255 名前:nobodyさん mailto:sage [02/05/08 12:20 ID:???]
- SmartyでPHP-nukeのthemesを使えねーかと思ったことあるんだけど、できるかな?
クリック一つでデザインを変られる…みたいな。
- 256 名前:253 [02/05/10 11:37 ID:49KcfInZ]
- >>254
PHPでもあらかじめ注意して分けてれば、対応できるんじゃない? functionとかincludeとかprependとか使えば。 強制的に分離させる(HTML中にはあまり難しいコードはかけない)ってところが みそなのか? PHPってもともとHTMLをちょっとだけ変える、とかに向いてるし Smarty とかは[PHPもどき]にしか思えないんだけど <?=$hoge ?> が {$hoge} になってるだけ、とおもえた。 HTMLタグの記号じゃないところがみそなのか? 結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと 分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ)
- 257 名前: ◆AngelBlk mailto:sage [02/05/10 14:19 ID:???]
- >256
>結局 DreamWeaverとかで「プログラム素人にわかりやすく」編集できるようになってないと >分離してもあんまり意味ない気がする(というかプログラマの負担が大きすぎ) 激しく同意。 確かに、Smartyは少し方向性が違うな、と思った。 (少なくとも自分が求めているものとは、かな) 自分一人で作るにしても、テンプレートの方には 出来るだけコードっぽいもの書きたくない・・・。
- 258 名前:nobodyさん mailto:sage [02/05/10 16:10 ID:???]
- Smartyのテンプレート言語って単純じゃないですか?
プラグインによって+αの機能を多く実装してますが、 プログラム的なものは分岐式とループぐらいだと思います。 (これは他のテンプレートエンジンもそうですが) ロジックが露出してしまいそうな部分は、カスタムタグを提供する事で 対処する事ができます。 #テンプレートに渡された連想配列からツリー形式のメニューを #動的に生成しようとするとテンプレート側で分岐やループを駆使する事になるので、 #これを何とかするタグが作れないか考案中。
- 259 名前:nobodyさん [02/05/10 21:51 ID:/cNgrcGu]
- >>253
PHPってもともとそういうものだからな。
- 260 名前:nobodyさん mailto:sage [02/05/11 01:40 ID:???]
- >>259
なのにそのPHPでテンプレートを開発している奴らの目標は何かと問いつめたい ただ、{?php xxxx ?}みたいなタグじゃない形で PHP が実行できると 便利な場合もあるなと思った
- 261 名前:nobodyさん mailto:sage [02/05/11 04:38 ID:???]
- >>260
やっぱり、いかにプログラマとデザイナーの作業に分けるかでしょ。 じゃあ、PHPがHTML埋め込み型言語である理由って何?とか言われると すごい小さいアプリなら、てっとり早くでっちあげるのには便利かなー、って くらいしか思いつかない。 個人的には、PHPはHTML埋め込み"可能"言語であって、 スクリプト内にHTMLを埋め込もうと思えば、あくまでも"可能"であるって ぐらいの認識かなぁ。 自分がずっとSmartyを推してる理由は、変数置換や繰り返し以外にも、 プラグイン追加による機能拡張や、テンプレートの出力を一部キャッシュして パフォーマンスを上げたりする事が可能だから。 静的コンテンツを動的に生成したい時とか本当に便利。
- 262 名前:nobodyさん mailto:age [02/05/11 16:18 ID:???]
- Smartyとかの情報ってどこから仕入れてくるの?
みんな何でSmaryの存在を知ることができたの? どこかにテンプレートエンジンのリンク集があるのかな。
- 263 名前: ◆AngelBlk mailto:sage [02/05/11 17:10 ID:???]
- 話がループ気味です。
>262 smarty.php.net/ とか。 あと、割と最近でた青マンモス本にもSmartyの記事あったよ。
- 264 名前:narucy56 ◆wMOjCT4s [02/05/12 11:17 ID:215DjCeq]
- ロジックとデザインの分離で、面白いアプローチとしては、
Walrus 210.155.146.159/walrus/demo/ 拡張タグも何も要らない、普通に書いたHTMLを (属性名 id を利用して) ロジックから出力された文字列を展開して、表示してしまおうというアイデア。 利点としては、HTML に全くロジックが絡まないので、デザインしやすいという ことだろうか。 とはいえ、デザイン中に書ける繰り返し要素は、一回だけ。 -- <ul> <li id=list>さかな</li> </ul> def list [ "たこ", "いか", "めんたいこ" ] end <ul> <li>たこ <li>いか <li>めんたいこ </ul> --- <li>が一回しか書けないのは欠点だなと思った。
- 265 名前:nobodyさん mailto:sage [02/05/13 04:02 ID:???]
- >>261
PHPを使ったテンプレート 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 とかよりこんなのじゃだめなの?
- 266 名前:nobodyさん mailto:sage [02/05/13 12:31 ID:???]
- >>265
条件分岐や繰り返しのある表現をしようと思うとムリがありますよね。 全てのテンプレートエンジンがそうなのかは分かりませんが、少なくとも Smartyが提供するものは "PHPスクリプト内にHTMLタグを書かなくて済むような仕組み" なわけで、デザイナーとプログラマの作業分担云々へのメリットは副次的な 効果だと思う次第です。 PHPスクリプトの可読性を上げ、より保守しやすい環境を目指した仕組みな わけで、誤解を恐れず言えば、プログラマーが楽をするためのフレームワーク であると言っても過言ではないと思います。
- 267 名前:nobodyさん mailto:sage [02/05/13 19:33 ID:???]
- >>266
Smartyはデザイナとプログラマの分業を重要な目的の一つとして 制作されたので、副次的に生まれた効果ではないです。 あと、PHPスクリプトにHTMLが混入するテンプレートエンジンなんて 存在し得ないと思うんですが。揚げられたものは全て テンプレートエンジンが最低限実装すべきもののような気がします。
- 268 名前:nobodyさん mailto:sage [02/05/13 20:12 ID:???]
- DB連携がスマートにできるやつがいいね。
商用だけど、WebObjectsのフレームワークは、目から鱗。
- 269 名前:nobodyさん mailto:sage [02/05/13 20:12 ID:???]
- >>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 のまがい物みたいなの使うんでしょ?
- 270 名前:nobodyさん mailto:sage [02/05/13 20:19 ID:???]
- smarty のプラグインで何かおもしろい機能があるのか?
- 271 名前:nobodyさん mailto:sage [02/05/13 20:58 ID:???]
- >>266じゃないが、Smartyはかなりプログラマよりの仕様になっていることは確か
自分たちの必要に迫られて作った→いろいろ揉まれて良い物ができた→公開した という流れらしいしね >>267 PHPを対象としたものでなければ存在するんだな、これが 仮にPHPに対象を絞ったとしても、存在し得ないだのすべきものだの 断定的な事がよく言えたもんだ >>268 裏でどんなSQL投げてるか想像すると吐き気がしないか? >>269 そんな方法を採らなければいけないことが無理があるって事だと思うが… いびつだと思わないか?もう一度>>1を読んでみろ www.phpinsider.com/php/code/Smarty/docs/preface.html とりあえずこの辺読んだ方が早い。 読んでも理解できなければテンプレートエンジンのことは忘れろ お互いのためだ だいたい200を超えたスレでいまさら > いや、PHPそのままかけるんだから こういうアホなことを言うな
- 272 名前:nobodyさん mailto:sage [02/05/13 21:31 ID:???]
- >>271
>裏でどんなSQL投げてるか想像すると吐き気がしないか? 全部モニタリングできるし、必要に応じてカスタマイズもできるよ。 10年以上の実績あるから、信用できる。 そのへんのプログラマにSQL書かせるほうが遙かに吐き気がしないか?
- 273 名前:nobodyさん mailto:sage [02/05/13 22:16 ID:???]
- >>272
詳しくしらんが、NeXT時代から数えても10年以上はいいすぎだろ 吐き気を催すようなSQLしか書けないプログラマにサーバサイドアプリ 書かせるなんざ論外
- 274 名前:nobodyさん mailto:sage [02/05/13 22:18 ID:???]
- >>271
混入してしまった時点でその部分のコードは相手方の 手から離れてしまっているので分担とは言えないような。 Javaですか?そのエンジンが持つ、専用のスクリプトの事じゃないですよね。 そのテンプレートエンジンを教えていただけますか?
- 275 名前:nobodyさん mailto:sage [02/05/13 22:49 ID:???]
- >>274
わざわざ機能不足な物を知ってどうする? なにかメリットあるのか? 最新Verでどうなってるかまで知らないし、そこまでわざわざ調べるつもりもない 興味本位なら自分で探せ そもそも俺が言いたいのは、自分が見たことがない = 存在しない などという傲慢な 考え方はするなって事だ
- 276 名前:nobodyさん mailto:sage [02/05/13 23:42 ID:???]
- >>275
それは機能不足だと思うんですか? 明らかに分析が間違っているのに公開されてるような イレギュラーなフレームワークを話題に持ち出すのは どうなんでしょうね。 あと、最後のように間違って解釈される方がいないように "し得ない"という表現を用いています。伝わらなかったようですが。
- 277 名前:nobodyさん mailto:sage [02/05/13 23:58 ID:???]
- >吐き気を催すようなSQLしか書けないプログラマにサーバサイドアプリ
>書かせるなんざ論外 いい開発者+いいフレームワーク=(゚д゚)ウマー
- 278 名前:nobodyさん mailto:sage [02/05/14 00:47 ID:???]
- >>276
誰が話題に持ち出してるんだ? 分析云々偉そうなこと言いなさんな、初期のテンプレートエンジンなんざ 全部文字列置換に毛が生えた代物だらけだったからな まあ、その程度でも十二分に便利な奴もいるし、現在メインで使ってる奴もいる (間違いなくいる、しかもかなりな数で)所詮は適材適所ってこった ともかく自分の常識から外れたら全てイレギュラーとは恐れ入った 何に対してもずいぶん自信がおありと見える 微妙にスレ違いだから、お前にはここまで
- 279 名前:nobodyさん mailto:sage [02/05/14 02:01 ID:???]
- >>278
オマエモナー
- 280 名前:nobodyさん mailto:sage [02/05/14 02:13 ID:???]
- >>278
>PHPを対象としたものでなければ存在するんだな あなたが、私がそんなものは存在しないと断定したと勘違いし テンプレートエンジンの存在を持ち出してきていますね。 変数置換しか出来ない云々、そういう話でしたか? スクリプト内にHTMLが混入するという話ですね。 それこそ、”誰が話題に持ち出してるんだ?”のような・・・。 #文字列置換はテンプレートファイルに書かれたタグを #置換するもの。しっかり分担されてますね。 >ともかく自分の常識から外れたら全てイレギュラーとは恐れ入った あなたが機能不足と判断したのであって、私の常識で言っているのではないですね。 その在り処を知らない、その実装理由も知らない、 ただそうなっていたのを見たことがある、だけでは何の力もありませんよ。 さらに私のイレギュラーの定義ですが、勝手に思い込みすぎですよ。 そんな事いってないですね。 #私が知りたいのは機能よりも、何故そうしたかという理由です。 #もし正当な理由なく、なんとなくそうなったのであれば #それは一般に公開されるようなフレームワークと呼ぶものではないですね。
- 281 名前:nobodyさん mailto:sage [02/05/14 08:13 ID:???]
- おーまーえーらーちょっと頭冷やしてこい。
で、冷静になってから書き込め。 ただでさえ人少ない板なのに、 これ以上人減らしてどうするよ・・・。
- 282 名前:nobodyさん mailto:sage [02/05/14 08:53 ID:???]
- >>280
( しまった、デムパだったか… 読心術でも使え、と言わんばかりの言葉の(頭もか)足りなさ ま、何もかもが子供の口喧嘩レベルの後付けなんだろうけどさ >私が知りたいのは機能よりも、何故そうしたかという理由です。 >>276から↑を推測できる人間がいるのか? だいたい本当に知りたければ、もっと早い段階でこの言葉がでてくるはず そもそも大元の「存在し得ない」と「存在しない」じゃ、前者の方が否定の 意味は強いし、より断定的。 >明らかに分析が間違っているのに公開されてるような これもそう。こういう物の考え方が、根っから染みついてて自覚できない レベルになってるんだな、きっと 相手が勘違いした。じゃなくて、相手に勘違いさせてしまった。もしくは 自分が間違っているのかもしれない。とは考えられないものかねえ スレ違いスマソ、もうやめる
- 283 名前:nobodyさん mailto:sage [02/05/14 12:03 ID:???]
- >>271 うーん、smarty で >>269 みたいなの書く場合は
template.tpl 内には <table> <!-- {section name=value loop=$osakana } --> <tr><th>{$namae[value] }</th><td>{$nedan[value] }</td></tr> <!-- {/section} --> </table> こんなかんじじゃない。php直で書くのとあんまり変わらん気がするが。 テンプレートにループとか取り込んで細かく制御しようとすると、 phpプログラマ、HTMLデザイナの他にテンプレートプログラマが必要になるだけで デザイン変更があった場合に動く人間の数は HTMLデザイナ+テンプレートプログラマで減ってないし テンプレートプログラマとHTMLデザイナが兼任できれば「コンテンツ(を作る人)とデザイン(を作る人)の分離」 という目的は達成されてるんだが、こんな実装の仕方では、結局PHPプログラマがテンプレートプログラマを兼任するしかなく そうなるとPHPプログラマの負担が増えている(テンプレート言語を覚えないといけない)だけで、 本末転倒の気がしたから、200超えてからこんな話をしてます
- 284 名前:nobodyさん [02/05/14 14:05 ID:SWWQgFa+]
- 最初の画面はどう作ってもたいした違いはない。
問題は保守の時。 具体的に言うと (1) デザイナーが画面イメージのHTMLを作成 (2) プログラマが(1)を表示するコードを書く (3) クライアントに見せる、文句言う (4) デザイナーが(1)を修正してプログラマに見せて、 この通りに直せゴルア! (5) プログラマはどうする? これがこのスレのテーマだと思う ○ コンテンツとデザインの分離ができてない つまり、perlのようにコードの中に(1)のHTMLが分解して埋め込んであるような状態だと、 (2)のコードを修正して(5)のコードにするのが大変 つまり(5)の作業に(2)と同じ工数がかかる ○ コンテンツとデザインの分離ができている Smartyのようなツールを使うと、(1)の成果物(テンプレート)と (2)の成果物(ロジックのみのプログラム)がソース単位で分解されている (2)に手を加えることなく(1)と(4)を入れ替えるだけで作業完了(実質的には工数ゼロ) 「ロジックの修正がなくデザイン面の修正だけする場合にどれだけ楽できるか?」 という評価基準で各ツールのよしあしを評価していけばいいんじゃないの?
|

|