トップページphp
1001コメント301KB

【総合】PHPフレームワークを語るスレ8

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/10/17(水) 16:01:41ID:72/gWtt1
前スレ
http://pc11.2ch.net/test/read.cgi/php/1181350116/
0220nobodyさん2007/10/30(火) 00:23:47ID:???
Smartyはプラグインが蓄積されてたら{$hoge|huge|hage}で簡単にオレオレ関数呼べるし、
そう悪くはないと思うけどなあ。確かにOSSでの採用は微妙だけど。
そもそも重量級のサイトには使えないし、
DWで崩れちゃヤダヤダなデザイン屋にはPHPTALでも使うしかない?
0221nobodyさん2007/10/30(火) 00:24:04ID:???
とりあえずSmartyに限らずテンプレートエンジンが必要か否か、
から始めようじゃないか。

Smartyを使ってる人、
Smartyは使ってないけど別のテンプレエンジン使ってる人
生PHPの人がそれぞれいるだろう。
0222nobodyさん2007/10/30(火) 00:30:37ID:???
>>221
まだやる気か
○しますよ?
0223nobodyさん2007/10/30(火) 00:58:09ID:???
>>219
タチの悪さ( )笑

2ちゃんねるは初めてなのか?
0224nobodyさん2007/10/30(火) 01:04:32ID:???
>>214
>2005年頃既にSmartyは終わってたと思うけど。
>ちょうどsymfonyが出てきて
>「templateは生phpでいいじゃん」「Smartyいらなくね?」「むしろ氏ね」
>みたいな流れが大勢になった。

それはないのう。生PHPよりSmartyのほうがもてはやされてたし、いまもその傾向が強い。
Smartyイラネ派はいつもマイノリティーじゃい。今日がはじめてじゃないかの?勢力が逆転してるのは。
流れが悪くなったら船をコロコロ乗り換えるおまえさんみたいなやつは昔から多いがの。

まあ、生PHPだとテンプレートに何でもかけてしまうから、できることを制限させるという目的でSmartyを使うのはありだとは思うがの。
0225nobodyさん2007/10/30(火) 01:08:36ID:???
過去スレ読んでない奴多いなw
このスレでは毎回Smartyフルボッコだったよ
てかもう飽きた
テンプレートエンジン専用スレなかったっけ
そっちでやってくれないか
0226nobodyさん2007/10/30(火) 01:09:56ID:???
2ちゃんが世間と一致していると思っている奴ハケーンw
0227nobodyさん2007/10/30(火) 01:15:25ID:???
smartyとか言いだしたのプードル飼ってる奴じゃね?
このスレじゃ歴史的に禁句なんだよ
毎回無駄に荒れて何も得るものがないから。
0228nobodyさん2007/10/30(火) 01:18:28ID:???
お前の職場にトイプードルを飼ってるPHPerはいないか?
そいつが犯人!
0229nobodyさん2007/10/30(火) 01:30:17ID:???
なんかこういう流れは前にもあったなー、と思ったら、JavaでのEJBとPOJOの流れによく似とらんかいの?
昔、EJBが全盛だったころは猫もしゃくしもEJBを使おうとしておっての、EJBが使えないと一人前とは見なされなかった。
その時期に「EJBは複雑すぎる。もっと簡単なソリューションがあるはずだ」といってみても、お前の頭が悪いからEJBを使いこなせないだけだろ、と一喝されたものだ。
でも結局はIoCだのDIだのPOJOだのがでてきて、SpringやHibernateが主役になった。あれだけベンダーが金をつぎこんだEJBはもはや誰も見向きもしない。
あの当時、EJBを誇らしげに語ってたやつやベンダーは、今はそんなことはまるでなかったかのように「これからはDIだ」とか語ってんの。自分たちが今まで間違ってたことはなかったことになってるらしい。

Smartyから素のPHPへの回帰も、規模は小さいけどよく似てないかの。みんながSmartyだと言ってたから、よく考えもせずにSmartyを採用してたというのが本当のとこじゃないかの。
みんながSmartyといえばそれを持ち上げ、Smartyいらないという流れになれば立場を変える。EJBのやつらとなんも変わらんわの。どっちも自分の頭を使ってない。
Ruby on Railsは変なテンプレートエンジンを使ってなくて、eRubyをそのまま使ってるけど、単に使ってるというんじゃなくて、自信を持って「他のテンプレートエンジンはいらない」と言い切ってる。
Railsの作者はよくわかってる。PHP陣営も見習ってほしいのう。

              さて、アニメでもみるかの。今日は何があったかの。
0230nobodyさん2007/10/30(火) 01:40:31ID:???
>>229
それがこのスレでとっくの昔に出てた結論だよ
PHPer馬鹿にすんなよ
0231nobodyさん2007/10/30(火) 01:44:53ID:???
言ってる内容は陳腐とはいえ特に問題ないが
「自分は分かってる。自分以外はバカだから分かってない」みたいな口ぶりがムカつくので
賛同してやらん。
0232nobodyさん2007/10/30(火) 01:53:53ID:???
またもやアニオタはダメだとの論拠が強化された。
0233nobodyさん2007/10/30(火) 01:53:57ID:???
>>176
単純だけど便利になったわ
今まで単にvar_dumpしてた
0234nobodyさん2007/10/30(火) 01:55:01ID:???
>>232
駄目っていうか思いこみが激しいな
まあどうでもいいけど
0235nobodyさん2007/10/30(火) 02:51:06ID:???
http://journal.mycom.co.jp/news/2007/10/29/013/images/001l.jpg
Rubyは公式ロゴが決定したというのにぺちぱーは醜い内部抗争ワロスwww
0236nobodyさん2007/10/30(火) 02:51:39ID:???
>>230
とっくの昔ってどのへん?
過去スレならどのスレのどのあたり?
0237nobodyさん2007/10/30(火) 02:56:15ID:???
>>231
Smartyユーザ乙。
おまえの賛同なんかだれもいらんと思うが
少なくともRailsの作者はわかってる、と書いてある。

>>221
生PHP + 自作関数 かな。
0238nobodyさん2007/10/30(火) 04:05:16ID:???
俺俺FW作ってるけど
リクエストパラメータとエラーメッセージを
どうやってviewに渡すかいつも迷う
mojavi系みたいにRequestクラスを作るかとか
関数の中のstatic変数に保持させようかとか
静的クラスに保持させようかとか・・・
選択肢が多くて決められねーyo
0239nobodyさん2007/10/30(火) 04:33:04ID:???
requestオブジェクト作ってcontextオブジェクトにぶち込んどけばいいんじゃね
と、勝手に思うけど、好きにやってみて改良改良・・がいいんじゃね
俺俺FWなんだから そんなの考えてたら他のFWと同じに(ry
0240nobodyさん2007/10/30(火) 05:53:29ID:???
ZFでリクエスト周りってどうなってんの?
Zend_Requestみたいのないけど
0241nobodyさん2007/10/30(火) 06:06:19ID:???
Zend_Memory コンポーネントは、 限られたメモリ環境でデータを管理するためのものです。
メモリマネージャが要求に応じて メモリオブジェクト (メモリコンテナ) を作成し、
必要に応じて透過的にスワップ/読み込みを行います。
たとえば、あるオブジェクトを作成あるいは読み込むことによって
メモリの使用量が制限値を超えてしまう場合に、 管理しているオブジェクトのいくつかをメモリの外部の キャッシュにコピーします。 このようにして、管理しているオブジェクトのメモリ使用量が 制限値を超えないようにします。

どんな仕組みだこれ?
PHPの限界超えてねーか?
0242nobodyさん2007/10/30(火) 12:15:34ID:???
素敵コードを書けない>>177のために、かわりに書いてみた。
http://anond.hatelabo.jp/20071030034313
Smartyの倍は速いエンジンだ。アプリケーションが倍速くなるわけじゃないけど。

>>177
>そうそう、Smartyはほんと良く出来てるよね
><?php echo $hoge; ?>なんて書かずに{$hoge}だけだし
これでわかるだろ、自作関数をちょっと書けばSmartyなんかいらないことが。
それすらできないやつが「{$hoge} だけで済むSmartyはよくできてる」とかいってる。
そして今日もPHPユーザがばかにされる。残念よのう。

でもまあ foreachelse みたいなのは PHP にもあっていいかもな。
Pythonにはあるようだし。
0243nobodyさん2007/10/30(火) 12:23:50ID:???
素敵。
これにゴテゴテ機能をつけずに、1枚includeすれば便利に使えるってのが一番美しいと思う。
0244nobodyさん2007/10/30(火) 13:05:40ID:???
>>242-243
こいつら、昔のLinuxユーザと同じ間違いを犯してる
0245nobodyさん2007/10/30(火) 13:15:28ID:???
>>242
つっこむのもなんだけど、 #{} の中に } が入るとエラーになるよ。

convert_template のコメントを見て思いだしたのだが、
file_put_contents には LOCK_EX の指定ができるのに、
file_get_contents には LOCK_SH の指定ができないのは何故なんだ。
0246nobodyさん2007/10/30(火) 13:32:58ID:???
>>242-243
カワイソウ..
0247nobodyさん2007/10/30(火) 13:43:15ID:???
何故クラス化しなかったのかが気になる。
0248nobodyさん2007/10/30(火) 13:48:09ID:???
Smartyを擁護する気は毛頭無いが、自作関数自作関数言ってる人は、
よっぽどでかい案件か、もしくは自分で遊ぶアプリしか作ってないのかな?って思う。
何件もやってると、如何に「自分流」を入れないか、という事を気にするな、俺は。
メンテするの俺じゃないし。
・・・、本音を言えば・・・、自分流を入れると、後々それが間違ってたとして
バカにされるのが怖いっていうのもあるw 純正で対応してくれるならそれが一番!
でかい案件だと、色々と手を加えないとダメなんだろうな、とは思う。
俺は<% %>を廃止しなければ幸せになれるんじゃないだろうか・・・と思ってる。
0249nobodyさん2007/10/30(火) 13:49:22ID:???
置き換えだけだったら意味薄くね?
かといって制御構造取り入れるとブクブク太って醜くなる
生php最強
0250nobodyさん2007/10/30(火) 13:57:59ID:???
ちゃんと学校に行ってるのかが気になる。
0251nobodyさん2007/10/30(火) 13:59:16ID:???
60行でバグ出すなら実績とるわな…
0252nobodyさん2007/10/30(火) 14:01:31ID:???
>>251
激しく同意
「自作で」とか言っている奴はこのあたりが分かっていない
02532482007/10/30(火) 14:11:52ID:???
>>252
>>251は俺に対する皮肉(?)でしょ?
別に<?php echo 〜 ?>に限った事じゃなく、自作O/Rマッパーとか。
また、 function o(){・・・} やら function d(){・・・} やら、自分で使う分には
全く問題ないと思うよ。俺も自分で使う分にはよく使うよ。すっげー便利。
ただ、自分以外もメンテするものに使うのはどうかな?と思ってる。
そもそもそんな関数名、命名規則違反じゃないの?そのプロジェクトで。
で、そんなものをいっぱい量産するのはどうなの?って事。
と、思ったけど、場面々々で有効、無効あるから、この言い争いは無意味だったね。
すまん。
0254nobodyさん2007/10/30(火) 14:15:45ID:???
なんにでも完璧はないし、ケースバイケースだと思うがな
何はどうあれ、ちゃんとコードを書いて晒した >>242 に賛辞を送りたい
へこむなよ > 242
0255nobodyさん2007/10/30(火) 14:34:37ID:???
>>253
>>248にも激しく同意だから
>>251は素直にそのままの意味で解釈した。
0256nobodyさん2007/10/30(火) 14:35:48ID:???
実際、>>245で突っ込みが入っているし
0257nobodyさん2007/10/30(火) 14:44:04ID:???
別に>>242がコードを書いて晒さなくてはいけない場面でもないのに、
勝手に晒して「それすらできないやつが」などどほざいた挙句、
すぐにつっこまれている奴に賛辞は送れないな
0258nobodyさん2007/10/30(火) 14:45:12ID:???
テンプレートエンジン厨は去れ
0259nobodyさん2007/10/30(火) 14:50:26ID:???
>>258
自作厨(笑)
0260nobodyさん2007/10/30(火) 15:02:18ID:???
フレームワークの話題スタート↓
0261nobodyさん2007/10/30(火) 15:06:27ID:???
フレームワークの話題フィニッシュ
0262nobodyさん2007/10/30(火) 15:07:25ID:???
>>260-261
ちゃんと/**/付けろよw
0263nobodyさん2007/10/30(火) 15:27:52ID:???
Smarty叩きとHTML_QuickForm叩きはこのスレの永遠のテーマだな
0264nobodyさん2007/10/30(火) 15:33:37ID:???
そんなこと言ったら今度はQF厨がくるかららめぇ
0265nobodyさん2007/10/30(火) 15:51:39ID:???
>>245
> つっこむのもなんだけど、 #{} の中に } が入るとエラーになるよ。
それは仕様。Perlじゃないから式の中に { } が出てくるのはまれ。実用上問題ない。<?= ?> とか <%=h %> よりはこっちのほうがいいと思うがの。
どうしても使いたいなら
<?php $var = ' } を使った式'; ?>
<span>#{$var}</span>
とすりゃあいい。もしくは改造するか。
でも file_put_contents() で LOCK_EX の指定ってできるんだ。知らなかった。サンクス。

>>248
問題はそこじゃない。この程度の関数で済むものを、わざわざ大げさでかつ大して便利でもないテンプレートエンジン使ってることを問題にしてるんじゃがの。
Smartyと同じ規模のものを自作関数で作ったというなら248のいうことももっともだが、たかが数十行に対してこの見解は的外れ。
0266nobodyさん2007/10/30(火) 15:55:34ID:???
数十行ごときのプログラムをバグ無しで書けないような奴は、どの道・・・。
0267nobodyさん2007/10/30(火) 15:56:55ID:???
( ^ω^)おっおっおっ
0268nobodyさん2007/10/30(火) 15:57:47ID:???
一連の流れが自作自演に見えてしまうwww
0269nobodyさん2007/10/30(火) 16:05:12ID:???
>>249
書き換えだけでも十分役に立つ。<?php echo htmlspecialchars() ;?> は頻繁に使う機能だから、それが簡潔になるのは大きい。
そもそも元のPHPが十分な機能をもっているんだから、あまり付け加える機能はない。
といいつつ、自分が使っているのはレイアウトテンプレートをサポートしているがの。

>>251
バグってどのこと?まさか>>245のことをいってるんじゃないよね・・・
もし
> #{} の中に } が入るとエラー
が問題なら、Smartyでも同じ問題おこるから、そっちのほうが大問題だがの。
Smarty派はそれについてはスルーかの。

>>252
数十行のコードすら自分でバグ直せないのか。。。そいつはすまんかった。話の前提が間違ってた。そういうことならSmartyでもなんでも人任せにできるものを使ってくれ。

わしにしたら、バグがあったとしても、小さい自作関数ならその場ですぐに直せるけど、Smarty規模になると自分ではなかなか直せんから、自作関数の方を選ぶがの。メンテナンスのことを考えた上で。
まさかSmartyにはバグがないとかいうやつはおらんと思うけど。
0270nobodyさん2007/10/30(火) 16:15:27ID:???
とりあえず、作ってみた姿勢は評価するんだけどね。
preg_replace()だけだからわざわざ作る必要も無い気がする。
(初心者には便利だわな。)

しかし、ここはフレームワークのスレなんだと何度言ったら(ry

・・・まぁ、ここにはフレームワークとテンプレートエンジンの区別も付かない奴しか居ないんだからしょうがないか。
0271nobodyさん2007/10/30(火) 16:26:18ID:???
>>269
>わしにしたら、バグがあったとしても、小さい自作関数ならその場ですぐに直せるけど
>>248の言っていることを一蹴している割に、ぜんぜん理解してないことがバレバレw

>>270
ふ〜ん、ごりっぱですね
0272nobodyさん2007/10/30(火) 16:27:11ID:???
最後の一行で煽ってるあたり、まだまだ論争を続けて欲しいように見受けられる。
270は嫌々言いながらも攻められるのが好きなドMなんだ。そうだろ?
0273nobodyさん2007/10/30(火) 17:08:04ID:???
>>265
最近のFWは<?php echo htmlspecialchars() ;?>なんてしないよ
アサイン時に一括エスケープするから
symfony,ci,モダンなFWはだいたいそう
smarty派も非smarty派もテンプレートエンジンに拘ってる時点で旧式
もしかして過去から書き込んでるのか?
0274nobodyさん2007/10/30(火) 18:10:13ID:???
>>273
未来からは書けないと思う。
0275nobodyさん2007/10/30(火) 19:05:37ID:???
なんだQuickFormも使いこなせない奴が多いんだな
馬鹿ばっかりか
0276nobodyさん2007/10/30(火) 20:06:47ID:???
フレームワーク採用する何て言ったら気絶しそうな勢いだな。
0277nobodyさん2007/10/30(火) 20:12:33ID:???
ツールを作る人間もいるというのに、使えただけで俺はすごいとか妄想できるって幸せだな
0278nobodyさん2007/10/30(火) 20:36:44ID:???
フレームワークに使われてる奴多いなププ
0279nobodyさん2007/10/30(火) 20:49:16ID:???
∩アイ
0280nobodyさん2007/10/30(火) 21:08:44ID:???
ソース読め的なレベルの質問で本当に申し訳ないのですが、DIコンテナを使用したフレームワークってどんな感じの作りになっているのでしょうか。
色々ググって見たのですが、スキルが低いため、説明を読んで見てもいまいちイメージ出来ません。(依存性の注入?とか。。)
シングルトンで各オブジェクトを引っ張って来てるみたいですが、このあたりが肝だったりするのでしょうか。
くだらない質問かと思いますがよろしくお願い致します。
0281nobodyさん2007/10/30(火) 22:57:38ID:???
>>280
Javaスレにいったほうがいいんじゃない?
そっちのほうが活発だから。

あとシングルトン自体はあまり肝じゃない。
ぶっちゃけ規約で制限してもできることだから。
0282nobodyさん2007/10/30(火) 23:00:33ID:???
>>277
> ツールを作る人間もいるというのに、使えただけで俺はすごいとか妄想できるって幸せだな

すでに存在するツールを作っても車輪の再発明と言われるように、
どんなアプリにも共通する土台(フレームワーク)を再発明したら馬鹿だろ・・・

使えるものは使わないとね。
0283nobodyさん2007/10/30(火) 23:01:41ID:???
テンプレートエンジンでもフレームワークでもこの際どっちでもいいんだけど、
それらを自作してるやつって一人で作ってるか、プロジェクトで自分の
作ったフレームワークが採用されたってことか?
なんかここの流れ見てると、プロジェクトの各メンバーが
「今回のプロジェクトでは俺の自作フレームワークを使おうぜ!」
となりそうな気がする。
プロジェクトで使うためのフレームワークを社内開発したというならまだわかるんだけど。
0284nobodyさん2007/10/30(火) 23:06:45ID:???
>>275
> なんだQuickFormも使いこなせない奴が多いんだな

QuickFormってたしか、コードでFormの項目にあたる部分を定義したら
それに相当するHTMLとチェックコードを生成してくれるライブラリだっけ?

コードでデザイン作るようなものでMVCになっていない。
これ使ってもデータベースと連携するところまでは楽にならない。
ということでフレームワークを使い始めてからは
こんなライブラリは使えないと思うようになったよ。
0285nobodyさん2007/10/30(火) 23:28:26ID:N/0PbTQK
フレームワークはいいんじゃね?Smartyがダメなだけで。
0286nobodyさん2007/10/30(火) 23:35:28ID:???
Smartyはただのテンプレートだから・・・
フレームワークのビューの部分でしかない。
0287nobodyさん2007/10/30(火) 23:35:47ID:N/0PbTQK
ああQuickFormとかは有り得ないと思ったな。
毎日毎日同じようなもの作るんだったら良いかもしれないけど、忘れた頃に作るとなるとマニュアル見て、('A`)メンドクセ
0288nobodyさん2007/10/30(火) 23:36:30ID:???
Quickformは一時期はまった
あの発想自体はいいと思う
0289nobodyさん2007/10/30(火) 23:43:01ID:???
最新のフレームワークを使ってないと過去の人らしい。
>>273
>アサイン時に一括エスケープするから
エスケープしたいのとしたくないのが混じってるときはどうするの?
0290nobodyさん2007/10/30(火) 23:48:16ID:???
>>289
rawコンテナみたいのも提供してるからそこから取り出すように出来てる
FWを使っていてエスケープせずに表示したかったことは
まったくといっていいほどなかった、というのは藤本神のお言葉
0291nobodyさん2007/10/30(火) 23:49:31ID:???
昔作ったSmarty+QuickFormな遺産があって今でもメンテしてる。
当時の俺にコンポーネント指向ってのが頭にあったらもう少し
うまく使いこなせてたんじゃないかなと思ってる。 > QF
0292nobodyさん2007/10/30(火) 23:50:32ID:???
>>283
>なんかここの流れ見てると、プロジェクトの各メンバーが
>「今回のプロジェクトでは俺の自作フレームワークを使おうぜ!」
>となりそうな気がする。
なるわけがないー
全員ひきこもりでコミュニケーション能力がないとその可能性はあるけど、
普通は互いに考えをぶつけ合ってひとつのものを作るわな。
たいがいは一人スキルの高い人がいて、その人が中心になるけどな。
283こそ創造的なプロジェクトの経験がなさそう(あったらごめんね、でも経験があればそんなこと書かないよ)
0293nobodyさん2007/10/31(水) 00:07:52ID:???
>>290
>rawコンテナみたいのも提供してるからそこから取り出すように出来てる
これ、blogやwikiみたいなの作るときは無駄過ぎね?
$html = parse_wiki($wiki);
みたいなのがあって、これをビューに渡して表示させたいとき、当然HTMLエスケープはせずに表示するよね。
でもアサイン時に一喝してHTMLエスケープしたら、$html も問答無用でエスケープされるんでしょ?
wikiやblogだと $html の中身は長くなるから、必要のないエスケープが毎回強制的に実行されるのはすごく無駄だ。エスケープ処理はけっこう重いよ?測ってみたらわかると思うけど。

>FWを使っていてエスケープせずに表示したかったことは
>まったくといっていいほどなかった、というのは藤本神のお言葉
それほんとか?
$html = nl2br(htmlspecialchars($text));
みたいなのしょっちゅう出てくるけど。
あとは<pre<で表示するコードを色付けして表示したいとき
<pre<<?php echo htmlspecialchars($code); ?></pre<
ではなくて
<pre<<?php echo parse_proram($code, 'javascript'); ?></pre<
にするし。
レイアウトテンプレートを使ったら当然エスケープしないし。
0294nobodyさん2007/10/31(水) 00:08:12ID:???
>>290
そりゃ作るシステムによりすぎだろう
WikiとかCMSみたいのとか作ってると
エスケープしたくない場合なんていくらでもあると思うよ

symfonyのESC_RAW引数とかは使い勝手がよく出来てるなーと思った
遅そうだけどキニシナイ
0295nobodyさん2007/10/31(水) 00:09:42ID:???
激しくカブったがキニシナイ

</pre<

なんか魚っぽいなw
0296nobodyさん2007/10/31(水) 00:12:55ID:???
>>292
いや、だから互いに考えをぶつけあって
社内開発用フレームワークみたいのを
作ってるんならわかるんだって。
もしくは個人でやってるなら別に好きにやればいいと思うし。
実際このスレの住人てどんなプロジェクトでやってるのかふと疑問に思ったんだよ。
0297nobodyさん2007/10/31(水) 00:21:44ID:???
>>289
やっぱり一括エスケープするのはよくないよ。
単にエスケープし忘れを防ぎたいとか、
0298nobodyさん2007/10/31(水) 00:28:39ID:???
サニタイズ言うなって人にエスケープは直前にやれって怒られるぜ
0299nobodyさん2007/10/31(水) 00:28:43ID:???
どこでもデフォでエスケープがデフォだな
0300nobodyさん2007/10/31(水) 00:29:22ID:???
>>294
システムによりけりってアンタ、掲示板ひとつ作るにしても nl2br(htmlspecialchars($text)) は出てくるだろ。
SNSでのプロフィール表示とか。
>エスケープせずに表示したかったことはまったくといっていいほどなかった
と言い切れるって今までどんなシステム作ってきたんだよ。

>>295
すまんかった

ところでsymfonyもCIも、一括エスケープされるのは強制的なの?
こんな余計な機能はいらないからオフにして、かわりに好きなテンプレートエンジンが使えるようにしてほしい。
もしオフにできないなら、CI使おうとおもってたけどやめようかな。
0301nobodyさん2007/10/31(水) 00:32:39ID:???
もはや自動エスケープは常識だと思ってた
そういう意見があったことのほうが非常に意外で興味深い
0302nobodyさん2007/10/31(水) 00:35:20ID:???
>>300
オンラインショップのバックエンドとか旅券発行システムとかで
エスケープ必要なかったシステムはいくつも見てきているけど
だからって「全くといっていいほど」とはとても思えない程度にはあったなぁ

CI知らないけどSymfonyではエスケープの方式をいくつかから選択できるよ
何もしない、闇雲に全部やる、
普通の表示は全部やるけど必要なものは別オブジェクトからrawで取り出す、など。
0303nobodyさん2007/10/31(水) 00:41:28ID:???
失敗してたので再投稿。

>>290
やっぱり一括エスケープするのはよくないよ。
単にエスケープし忘れを防ぎたいとか、htmlspecialchars() が面倒というだけなら、ビューがデフォルトでエスケープするようになってればいいだけ。
素のPHPはそうなってないけど、そうなっているようなテンプレートエンジンを選べばいいだけの話。
一括エスケープは、目的のための手段のひとつに過ぎない。手段はほかにもあるし、一括エスケープが最適な方法とは思えない。

なんか最新のフレームワークでそうなっているからとか、えらい人がそう言ったからとか、そんなことで決めてないか?
>>290からはそんな匂いがプンプンする。
もし最新のフレームワークがSmarty使ってたら、または○○神がSmarty使ってたら、Smarty使うことが最高の方法ということになるのか?

でもSymfonyもCIも一括エスケープが基本なのか。CI使おうと思ってたけど萎えた。
こんな機能いらんから、テンプレートエンジンが自由に選べられるようにしてほしい。
オフにできるならCI使ってみる。
0304nobodyさん2007/10/31(水) 00:43:24ID:???
チームでやるには必須
どんなに注意してもかならず誰かやらかすよ
XSSの歴史がそれを証明してる
0305nobodyさん2007/10/31(水) 00:43:47ID:???
>>302
>CI知らないけどSymfonyではエスケープの方式をいくつかから選択できるよ
これいいね。Symfonyにしようかな。
0306nobodyさん2007/10/31(水) 00:48:38ID:???
FW自身の評判にかかわるから強制するって側面があるだろう。
トータルで見たらエラーの量を低減するのは明らかだからね。
0307nobodyさん2007/10/31(水) 00:51:23ID:???
一括エスケープするよりしない方が簡単なんだから
したくないならそりゃしないでもいいだろう
ってか>>303の決めつけにワロタ
思いこみの深さからいうと昨日のアニヲタ君かな?
君の方が権威に弱そうだったから権威っぽい名前を出しただけのことだよw
0308nobodyさん2007/10/31(水) 00:53:26ID:???
ビューでエスケープは勘弁してほしい
ベッキーがなんと言おうとこれだけは譲れない
0309nobodyさん2007/10/31(水) 00:54:51ID:???
アウトプット前提でデータ割り当ててるんだから同じだろ?
何が問題なのかさっぱり分からん。
0310nobodyさん2007/10/31(水) 01:07:20ID:???
>>293
詳しい処理見た訳じゃないが、
フレームワーク作者的に言えば
アサイン時にエスケープの有無は選べるように普通するだろ
そんなの考えたらすぐ分かるじゃん
少なくともテンプレートの層でエスケープするより
入り口でエスケープするアプローチの方がスマートだと俺は思うね。
0311nobodyさん2007/10/31(水) 01:13:25ID:???
エスケープの有無を選択するのにVを操作するよりは依存性が低いということかな?
データの加工をV前に済ます(Vは極力弄らない)という点からみるとそのほうが妥当かも。
0312nobodyさん2007/10/31(水) 01:17:50ID:???
(Vは極力弄らない)で思ったんだけど、
ビューのなかで繰り返しのコード(for等)をなくすアイデアない?
0313nobodyさん2007/10/31(水) 01:19:31ID:???
Amritaみたいのを自分で作る、とか。
0314nobodyさん2007/10/31(水) 01:27:43ID:???
煽り的に藤本氏の言葉を出したのは適切じゃなかったな
変に叩かせてしまった
面識はないけどすみません
要は、藤本氏の言葉は、ホワイトリスト方式の方がいいよという文脈だった
俺もそう思う
0315nobodyさん2007/10/31(水) 02:25:14ID:???
EthnaもSmartyも使ってないけど、
Ethna的にはnl2br()はSmartyのnl2br修飾子を使うんだと思う。
0316nobodyさん2007/10/31(水) 03:03:20ID:???
QFやらSmartyやらといえば、

ttp://blog.enjoitech.jp/detail.php?aid=128

ここで普通にQF2使ってるんだけど、
QF2の状況ってどんな感じなのかしら。
ちょっと前にみたらバージョンがえらく低かったんで、
まだまだ実用外だと思っていたんだが。

QFはアイディアは面白いと思うのよ。
色々と問題はあるけど。
0317nobodyさん2007/10/31(水) 09:59:12ID:???
>308
MVC的にはエスケープはViewがやるのが正しいんでないの?
ViewがHTMLとは限らないんだから、
どんなエスケープ処理が必要か知ってるのはViewだけであるべきでしょ。
0318nobodyさん2007/10/31(水) 10:41:33ID:WWjGeZUw
php da rox!
0319nobodyさん2007/10/31(水) 10:44:11ID:???
>>242
$file = $tpl_dir. 'template.tpl';
if (!file_exists($file)) {
$contents = preg_replace(
array(
'/^<\?xml/',
'/#\{(.*?)\}/',
'/%\{(.*?)\}/'
),
array(
'<<?php ?>?xml',
'<?php echo $1; ?>',
'<?php echo htmlspecialchars($1); ?>'
),
file_get_contents($file)
);
file_put_contents($file, $contents);
}
include $file;
こんな感じか。変数がかぶるとかなら関数作って渡せばいいだけやね。
うちだと、symfonyのviewの部分に、こんな感じのを作って入れてる。
(といってもそのままじゃなくて、<input />等のタグを、ヘルパに変換して代入する処理も入れてる訳だけど。
■ このスレッドは過去ログ倉庫に格納されています