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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2007/10/17(水) 16:01:41ID:72/gWtt1
前スレ
http://pc11.2ch.net/test/read.cgi/php/1181350116/
0873nobodyさん2007/12/04(火) 10:29:36ID:???
>>872
AOPは既存処理の前後に共通化された処理を挿入する。(前後とは限らない?)
mix-inは、共通で使う処理を関数化しておいて、それを任意のクラスのメソッドとして使えるようにする。
とか俺も半端な知識で言っている。
てかスレ違い。この辺の議論やると終わらないし。
0874nobodyさん2007/12/04(火) 12:15:47ID:???
phpで使えるdiコンテナてあるのな
scarletとか手軽そうだね
0875nobodyさん2007/12/04(火) 12:38:33ID:???
>>870
>人が書いた俺オレfactoryと、人が書いたDIコンテナと、どう違うというのだろう。
少なくとも同じじゃないだろ
俺俺ファクトリーだと、大規模化したときコードの見通し悪くなるよ
>>870自身がどんな場合でもファクトリパターンで対応して
DIなんていらねーって言うんならもう何も言うことないけど
0876nobodyさん2007/12/04(火) 16:47:36ID:???
>>875
>俺俺ファクトリーだと、大規模化したときコードの見通し悪くなるよ
コードって、どれを指してる?
例えば>>847の例だと設定ファイルとメインファイルの両方ともPHPのコードなんだけど、どっちのコードの見通しが悪くなると思ってる?

>DIなんていらねーって言うんならもう何も言うことないけど
DIの概念自体を否定してるんじゃなくて、何でも動的なスクリプト言語ならDIコンテナをわざわざ導入する必要がないといってるだけ。
DIでやろうとしていることは、スクリプト言語なら言語仕様の範囲で簡単に実現できる。
PHPでもDIコンテナが役に立つ例をだれも出せてないじゃん。それを示せばみんな納得できるのに、出しもしないでDIマンセーされてもな。
0877nobodyさん2007/12/04(火) 18:03:00ID:???
ほっとけよ。DI議論はもういい。
PHPでウェブプログラミングなんて、そもそも小規模なのばっかだし。
0878nobodyさん2007/12/04(火) 18:30:24ID:???
まとめようか。
・DIの概念はPHPにおいても有効である。
・ただし、PHPでは>>847のように比較的簡単に実現できる。
・大掛かりな仕組みは必要ないじゃん。

JavaではDI必須。っていうのが当たり前になりつつあるようだけど
スクリプト言語では>>847のように比較的簡単にできてしまうことが、
静的型付き言語であるJavaでは一筋縄では実現できないから、Springとか
Seasarとかそういう大掛かりな仕組みが必要ってだけじゃない?
あと、Java的にはDI使うとクラス関係が疎結合になり
コンパイルが早くなるらしいね。
PHPの場合、大掛かりなDIを導入するメリットがJavaほどには無いように思う。

>>877そういうなよ。
なぜ、ぶった切ろうとする?
新しい話題提供できるならして欲しい。
DIについて話題になったのは、このスレでは初めてじゃない?
smarty必要か?PHPにフレームワークは必要か?とか
毎度毎度の定期ループしてる話題よりよほど良いと思うがな。
0879nobodyさん2007/12/04(火) 19:29:14ID:???
自分が分からない話題が続くとイライラしちゃうんじゃないの?たぶん。
気にすることないよ。
0880nobodyさん2007/12/04(火) 19:47:46ID:???
>>878
AOPについではどうだろうか。
JavaでDIのメリットの一つとして、AOPが簡単にできることが挙げられる。
というか、AOPなしだとDIのメリットは半減する。

・PHPでもAOPは有効か?(どんなときに?)
・PHPではAOPも簡単に実現できるか?(YESなら大掛かりな仕組みはいらない)
08818772007/12/04(火) 20:39:47ID:???
いや俺はDIいらないでおk。スクリプト言語にはナンセンスで。
てかjavaでもいいや。xmlに書くとかもうウンザリ。
コード読んだ方がどこで何やってるかわかりやすいわ。
他人の俺俺ファクトリーでもスキルある奴が作ってればそれでいい。
だいたいソース読んで困るのは、ファクトリとかそんな知識すらないバカのだし。
0882nobodyさん2007/12/05(水) 01:58:35ID:???
DIについて俺の経験を書いてもいい?

以前開発していたちょっと中規模なプロジェクトがあったんだけど、
そのプロジェクトはDIコンテナのような仕組みが無くて、
>>847の書いたようなファクトリモドキを書いて、開発してたんだよ。

で、プロジェクトも終盤になってよし結合テストしよう!ってなったときに、
みんながcommon.phpみたいな必ず読み込まれるようなファイルに
$hoge = 'MyClass'
みたいな記述をして、どこからrequireされたか分からない、autoloadされたクラス内で
$obj = new $hoge($params)
と書かれてたんだわ。
それ自体は別に共通化されたファイル内に書かれていたから良かったんだけど、ときどきデバッグ用に
$hoge = 'OtherClass'
とかって書いちゃってるコードが混入して、結合テストがすごく大変だったトラウマがある。
あと、依存関係が全然整理されてなくて
public function __construct($str){
  $this->hoge = new $str;
}
なんて記述があったときには、何をnewできるのか、何が newされる対象なのかがわからなくて、保守のときに大変だったトラ ウマがある。(ドキュメントがあまり書かれてなかったんだよね...)

それがあってから、俺が担当するプロジェクトはDIを使うようにしてる。
どこで生成されるべきか、どこで使うか、どうやって切り替えるかを明確にするためにDI使ってる。

設定ファイルの管理は面倒だけど、テストがその分、楽になったかな。
DIのメリットはこんな感じだった。

スクリプト言語でも十分使えると思う。管理という面においては。
0883nobodyさん2007/12/05(水) 02:04:50ID:???
http://japan.zdnet.com/security/story/0,3800079245,20362451,00.htm
Apache 2.0系、2.2系にクロスサイトスクリプティングの脆弱性

Apache脂肪でPHPまたもや脂肪www
0884nobodyさん2007/12/05(水) 02:15:00ID:???
>>883
先生!これはPHPだけの問題なのですか?
0885nobodyさん2007/12/05(水) 08:48:32ID:???
>>884
そういうことにしといてやれ
もしくはスルーで
0886nobodyさん2007/12/05(水) 09:18:00ID:???
>>882
>ときどきデバッグ用に
>$hoge = 'OtherClass'
>とかって書いちゃってるコードが混入して、結合テストがすごく大変だったトラウマがある。

これはデバッグ用のコードが本番用コードに紛れ込んでいたという話だよね?DI関係なくね?
DIコンテナ使ってても、各自がデバッグ用にconfig.xmlをいじって、それが本番環境に反映されたら同じことだよね。

>あと、依存関係が全然整理されてなくて

依存関係って、例えばどんなの?イメージがわからん。具体例で詳しく。

>何をnewできるのか、何が newされる対象なのかがわからなくて、保守のときに大変だったトラ ウマがある。

これ、DIコンテナで解消できるの?
Javaはclassやinterfaceを使って型を縛れるから、どんなオブジェクトを指定できるかはわかるけど、PHPは変数に型がないから、どんなオブジェクトがくるかは指定できない。
これは言語の仕様によるものであって、DIを導入したからといって変わることはないはずだけど。

>(ドキュメントがあまり書かれてなかったんだよね...)
逆にいえば、ドキュメントを書けば済む話?
0887nobodyさん2007/12/05(水) 10:42:51ID:???
>>886

>DIコンテナ使ってても、各自がデバッグ用にconfig.xmlをいじって、それが本番環境に反映されたら同じことだよね。

いや、そういう意味ではなく、デバッグコードが混在してしまったけど、それを探すのに非常に手間がかかるってことをいいたい。
スクリプト言語だから、どこかで変数を変更してもデバッグそるまで、どう動くのか分からない
だからコンテナをファクトリみたいに使って記述を統一した。
ここに、設定ファイル云々は関係ない

>これ、DIコンテナで解消できるの?
Javaはclassやinterfaceを使って型を縛れるから、どんなオブジェクトを指定できるかはわかるけど、PHPは変数に型がないから、どんなオブジェクトがくるかは指定できない。

これこそがDI導入によるメリットだと思うが?必要とされるべきオブジェクトはコンテナによって注入される事で、依存関係を解決できるでしょ。
だからへたにnewするんじゃなくて、newするものをコンテナに置く。

>逆にいえば、ドキュメントを書けば済む話?

ぶっちゃけいえばそうだね、ドキュメントに事細かに書かれてれば大丈夫だったと思う。
でも依存関係とかってドキュメントしにくい部品でもある
0888nobodyさん2007/12/05(水) 11:58:35ID:???
>>886
>スクリプト言語だから、どこかで変数を変更してもデバッグそるまで、どう動くのか分からない
>だからコンテナをファクトリみたいに使って記述を統一した。
>ここに、設定ファイル云々は関係ない
いやだからさ、JavaでApplication.javaとconfig.xmlがあって、同じことをPHPでApplication.phpとconfig.phpにするとしよう。
デバッグコードはApplication.{java,php}に書いたの?それで分からなくなったというなら、それはDIも何も関係ないじゃん?どう関係あるの?
デバッグコードをconfig.{java,php}に書いて分からなくなったとしたなら、いくらなんでもセンスなさすぎだろ。config.phpで分からなくなるやつがconfig.xmlにしたところで解決できるわけない。

>これこそがDI導入によるメリットだと思うが?必要とされるべきオブジェクトはコンテナによって注入される事で、依存関係を解決できるでしょ。
>だからへたにnewするんじゃなくて、newするものをコンテナに置く。
これも分からん。まず依存関係が何かを具体例で説明してくれ。
それと、newするものをXMLファイルに書くのと、同じことをPHPファイルに書くことと、どう違うのかちゃんと説明してくれ。

>ぶっちゃけいえばそうだね、ドキュメントに事細かに書かれてれば大丈夫だったと思う。
>でも依存関係とかってドキュメントしにくい部品でもある
だから何をもって依存関係といってるの
0889nobodyさん2007/12/05(水) 12:17:17ID:???
ごめん、>>886じゃなくて>>887でした。
0890nobodyさん2007/12/05(水) 12:21:46ID:???
>>887
Application.javaとconfig.xmlはこんなのね。

--- Application.java ---
S2Container container = S2ContainerFactory.create("config.xml");
InterfaceX obj = (InterfaceX)container.getComponent(ClassX.class);

--- config.xml ---
<component class="ClassX">
  <initMethod name="initialize">
    <arg>"foo"</arg>
    <arg>123</arg>
  </initMethod>
</component>

Application.phpとconfig.phpならこんな感じ。

--- Application.php ---
require_once("congif.php");
$obj = create_ClassX();

--- config.php ---
function create_ClassX() {
  $obj = new ClassX();
  $obj->initialize("foo", 123);
  return $obj;
}

これらになんか違いがあるのか?
config.phpなら混乱するのがconfig.xmlでは混乱しないという理由を示してくれ。
0891887じゃないけど2007/12/05(水) 12:49:30ID:???
なんかそのコード見せられると、configファイルはさすがにXMLに
してもらいたいと感じてしまう。
もっと規模が大きくなってから大々的な移行しなきゃならなくなって
設定ファイルを再利用する場合とか、XSLT等で簡単&きれいに移行
できるし。
で、もしDIの設定にXML使うとすると、DIコンテナがその辺りのこと
を面倒見てくれるんだったら、それだけでも利用価値ありそう。
0892nobodyさん2007/12/05(水) 12:50:34ID:???
congif見てザンギエフ思い出した俺ガイル
0893nobodyさん2007/12/05(水) 13:36:32ID:???
やっぱりXMLは醜悪だな。設定ファイルはS式にするべきだ。
0894nobodyさん2007/12/05(水) 13:52:03ID:???
>>891
利点ってそれだけ?
Java使ってる他のやつに聞きたいんだけど、設定ファイルをXSLT使って移行するなんてこと本当にするの?そんなプロジェクト今まで見たことも聞いたこともない。
891はほんとにそれをしたことあるの?あるかもしれないという妄想を語っても仕方なくね?
それにおまえのconfig.xmlは手作業での移行ができないほど巨大なのか?おれはせいぜい50行いかない程度なんだけど。
数十行の移行をXSLTで自動化するためだけに、わざわざDIコンテナを勉強して導入するコストは払えん。しかもそんな場面が将来あるかどうかも分からないのに。
0895nobodyさん2007/12/05(水) 14:03:29ID:???
>設定ファイルをXSLT使って移行するなんてこと本当にするの
ないないw
ありもしないことを想定して無駄に作業増やすのがJava厨。
strutsのときも、フォワードのパスとかバリデータとか全部XML。
こんなもんプログラムに埋め込んだ方がいいと思うんだけど・・・
っていったらビルドのコストがとわけのわからないことを言う。
Java厨って変更の可能性のあるところは全部XMLに追い出した方が
保守性が高いという妄想に取り憑かれすぎ。
XMLに追い出すとソースと2重管理になってウザイって。
DBの設定とかローカライズのメッセージとか、そういうのだけでいいよ。
クラスの名前とかそんなもん追い出すとろくなことにならない。
0896nobodyさん2007/12/05(水) 14:32:00ID:???
まあCやらJavaやらコンパイル言語使うと、ソースファイルの中には
設定値を書きたくないという気持ちは理解できる。

08978952007/12/05(水) 14:35:03ID:???
>>896
クラス名は設定値じゃないからなー
言語に依存してる物はソースに書く方が俺は良いと思う。
DIとか使わなくてもまともに動いて保守性の高いプログラムは書ける。
だったら使わない方法で俺は行く。
0898nobodyさん2007/12/05(水) 14:39:05ID:???
ファクトリー厨の方々、必死すぎだろ
DI否定しないと気がすまんのな
0899nobodyさん2007/12/05(水) 15:13:55ID:???
DI否定する気は無いがPHPで使う気にはなれない
0900nobodyさん2007/12/05(水) 15:33:26ID:???
>>895
>strutsのときも、フォワードのパスとかバリデータとか全部XML。
>こんなもんプログラムに埋め込んだ方がいいと思うんだけど・・・
禿同
XMLに外だししなくてもいいものまで外だししないといけないのがアホらしい。
入力→確認→登録だけの簡単なページ遷移もXMLに書くのが面倒くさくて仕方なかった。
遷移先が変更になることなんかないんだって、簡単なアプリなら。
面倒を強制するな。
0901nobodyさん2007/12/05(水) 15:36:14ID:???
>>894-895
俺の場合はPHPとは全く関係ないが、すでに出来上がってるシステムの
スケーラビリティ向上+UIの一新を目的に大部分を書き直したことある
けど、そのときに設定ファイルの変更点はかなり少なかったからXSLT
使ったよ。
別に設定ファイルがデカイからではなく、そのシステムをデプロイして
使っている人が多かったから一挙に対応するために移行用のXSLT用意し
たらずいぶんあっさり終わった。
0902nobodyさん2007/12/05(水) 15:42:51ID:???
>>898
891=887乙
0903nobodyさん2007/12/05(水) 16:40:47ID:???
PHP3年ぶりぐらいに使おうと思って色々調べて、最近はPHPもフレームワークかと思いつつ
どれ使おうかと探したが、まあ一応本家だしZend試してみようかとサイトいったんだが
どうにもつながんねえ。
Zendframeworkって今落とせるのか?
ttp://framework.zend.com/
ここ自体応答無しなんだけど。
0904nobodyさん2007/12/05(水) 17:01:28ID:???
>>903
昨日はつながってたんだが、
つながらんね
0905nobodyさん2007/12/05(水) 17:09:29ID:???
ttp://www.zend.com/en/
こっからZend Studioの評価版落としてインスコ
インスコ先のbin\ZendFramework\libraryにFrameworkが入ってるお
0906nobodyさん2007/12/05(水) 17:30:30ID:???
3年ぶりのたまたまが偶然鯖落ちかなんかと重なったのか・・・

>>905
たまたまっぽいんで復旧するまでまつことにするわ。
余計なのインスコしてレジストリ汚したくないし。
でも情報thx
0907nobodyさん2007/12/05(水) 18:44:23ID:???
DIContainerの利点は、クラス名を変えれる事ではなくて、
依存関係の注入やインスタンス管理をまとめてコンテナがやってくれる事じゃないの?
つまり、あっちで作ったAのオブジェクトと、singletonのBのオブジェクトを、
この場で作ったCのオブジェクトににセットして…
とかみたいなコードをいちいち書かなくて済むようになる事こそがメリットだと思う。
09089072007/12/05(水) 18:49:05ID:???
2文目、書いたり消したりしてたら色々変になっちまった。スルーしてくれ。
0909nobodyさん2007/12/05(水) 18:50:44ID:???
>>907
これもDIコンテナなしで十分実現できるんだろうけど、せっかくだしもうちょっと話を聞かせてもらおうか。

>つまり、あっちで作ったAのオブジェクトと、singletonのBのオブジェクトを、
>この場で作ったCのオブジェクトににセットして…

ここらへんを詳しく。DIコンテナのメリットが分かるような具体例つきで。
0910nobodyさん2007/12/05(水) 20:13:07ID:???
>>907じゃないけど、
DIコンテナなしでも実現できるから
DIコンテナいらないってのはなんかちょっと違うと思う

Javaは機能毎にコンポーネントを細かく切りまくって
ひとつひとつは小さい機能でたくさんのクラスを用意する傾向がある
(PHPをはじめとするスクリプト言語と比較してという意味で)

でそのたくさんのクラスをできるだけ疎結合にするために
ConstructorInjectionなりSetterInjectionなりで
外部からインスタンスを注入するようする、
それがDependency Injection(であってるよな、、)

そうした際に、ある機能(モジュール)を使いたいと思ったときにも
上に書いたようにクラスが細かく分かれているから
様々なインスタンスを注入しなければならなくなる、
AというモジュールはBの注入が必要でBはCとDが、DはEが・・・
とインスタンス間の依存性が複雑になっていった時に、
いちいちその注入のためのコードを毎回書き直して
コンパイルし直すような手間を減らすのが
DIコンテナの役割だと思うんだけど
>>907もおそらくこういうニュアンスだったと思うんだが

俺も別にスクリプト言語でDIコンテナとかいらないと思う
スクリプト言語だと比較的(Javaと比べて)多機能の大きなクラスを作るし
コンテナで管理しないと困るなあと思うほど
インスタンス間の依存関係が複雑になるケースがそんなにないから

そういう意味でPHPにDIコンテナは要らんってのは分かるけど
DIコンテナという仕組み自体が要らんとかだめだとか
それはまたちょっと違う問題じゃないのという気はする
0911nobodyさん2007/12/05(水) 20:51:19ID:???
結局好みの問題もあるしなー
でもなんにせよJavaのやり方って普及しないよね。

Javaの崇高なる理論を元にした設計方針
→バカは理解できないから徹底は難しい
優秀なエンジニアの集団
→そのプロジェクトで一番効率的なやり方を自分たちで編み出してやる
0912nobodyさん2007/12/05(水) 22:00:20ID:???
結局好み
0913nobodyさん2007/12/05(水) 22:10:55ID:???
JAVAの山に幾度か登ったけど、全てリタイヤ… orz
0914nobodyさん2007/12/06(木) 00:19:55ID:???
>>910
だから具体例で説明しろって。
依存関係というのが複雑な例を出して、そのXMLを書いてみせろ。
そしてそれがPHPコードで書くと複雑になるのが、DIコンテナだとすっきり書けるというのを実際に書いて示せ。
具体例を示さずにDIマンセーするのウゼエ
0915nobodyさん2007/12/06(木) 00:31:56ID:???
>>910は別に
DIマンセー
と言ってるわけではないだろうが
なんでも噛み付くおまえもウゼエ
0916nobodyさん2007/12/06(木) 00:38:46ID:???
PHPER仲違いでPHP脂肪www
0917nobodyさん2007/12/06(木) 00:41:48ID:???
何言っても具体例で説明しろとしか言えないんだろ
0918nobodyさん2007/12/06(木) 01:18:29ID:???
DIコンテナ自体理解できないから具体例出して欲しいんだろうよ
0919nobodyさん2007/12/06(木) 02:05:44ID:???
おまえらが具体例出せないことはよくわかった
0920nobodyさん2007/12/06(木) 10:46:27ID:???
バイトがゴキブリ揚げてケンタッキー脂肪wwwwwwwwwwwwwwwww
http://news.livedoor.com/article/detail/3417675/
0921nobodyさん2007/12/06(木) 11:19:50ID:???
DIの具体例って前から説明されてね?

っていうか具体例だしても、挙げ足なら誰も書けないと思うんだけど。
0922nobodyさん2007/12/06(木) 11:23:59ID:???
DIを理解できない頭の悪さを他人のせいにしてるだけだよ
一連の書き込み見てりゃわかるけど
0923nobodyさん2007/12/06(木) 13:32:45ID:???
>>921
>DIの具体例って前から説明されてね?
どこに?
0924nobodyさん2007/12/06(木) 13:35:42ID:???
>>923に、わかりやすく言えば、班長さんみたいなもんだ。
0925nobodyさん2007/12/06(木) 13:42:24ID:???
>>921の文章が難解だと思うのは俺だけでしょうか?

0926nobodyさん2007/12/06(木) 17:06:31ID:???
残り少ないレス可能数に、DI 話で盛り上がってるのでスルーされてそのまま
DAT落ちしそうですが、一昨日から試行錯誤しても駄目だったので冒険します。

PRADOのSqlMapについてなんですが

やりたいこと:
〜略〜->QueryForList( 'FooBar', array( '%aaaa%', '%bbb%') );
から、
SELECT * FROM table WHERE ( str Like '%aaaa%' OR str Like '%bbb%' )
に展開して結果を取得したい。(配列数は可変)

やった事:
SqlMap.xml に、
<statement id="FooBar" parameterClass="array">
SELECT * FROM site WHERE
<iterate open="(" close=")" conjunction=" OR ">
str Like #[]#
</iterate>
</statement>
を追記したのですが
Unable to find property '[]' in object 'false' for parameter map 'FooBar-InLineParameterMap'
と出てうまくいきません。

PRADOのSqlMap Manualには <iterate> について書かれていないし、参考にしたのが
ttp://trac.pradosoft.com/prado/browser/trunk/tests/unit/SQLMap/maps/sqlite/DynamicAccount.xml
だったりするのでまだ未実装なのか記述ミスなのかもわかりません。。。
どうやったらうまくいくのかヒントでも何でもいいので、お示しをお願いします。。。
0927nobodyさん2007/12/06(木) 17:13:51ID:???
そんなの使わなければ、つまづく事も無いのにね。
0928nobodyさん2007/12/08(土) 05:30:02ID:???
http://japan.zdnet.com/security/story/0,3800079245,20362715,00.htm
OSX脂肪でPHP脂肪www
0929nobodyさん2007/12/08(土) 17:30:22ID:???
PHPやっててフォークやソケットやスレッドの知識が身に付きますか?
同じスクリプト言語でもPerlなら付きます
PHPしかしないのは技術者として自殺行為です
初心者こそ最初は他の言語をしましょうね
0930nobodyさん2007/12/09(日) 01:24:32ID:???
PHPのことを知らないのなら
黙ってれば恥かかなくてすむのにねw
0931nobodyさん2007/12/09(日) 05:26:30ID:???
PHP自体がフレームワーク
0932nobodyさん2007/12/09(日) 05:32:16ID:???
まあフレームワークは制限だからな
0933nobodyさん2007/12/09(日) 05:33:35ID:???
このスレを見ている人はこんなスレも見ています。(ver 0.20)
フケ・痒みがとまらないPart9 [身体・健康]

まだ止まらないのかよw
0934nobodyさん2007/12/09(日) 07:36:41ID:???
もともとフレームワークのPHP使ってフレムーワーク作る人って恥ずかしくないのかなw
0935nobodyさん2007/12/09(日) 07:44:51ID:???
そんな事言ったら、どの言語だってそうだろ。
ちなみにフレムーワークは作った事ないけど。
0936nobodyさん2007/12/09(日) 12:05:37ID:v5bnJUO2
俺もそろそろフレームワークデビューしてみたい(っ´∀`)っ
0937nobodyさん2007/12/09(日) 12:20:44ID:???
PHPはフレームワークとしては貧弱だからな
1枚ぐらい皮を被せたくなるぞ
俺は薄い皮希望だがな
0938nobodyさん2007/12/09(日) 13:22:15ID:???
より多くの案件をこなすのが目的なら

CakePHP
導入までの敷居が低い = 設置できるレンタルサーバーが多くなる
難易度が低い = 多くの技術者がすぐにプロジェクト参加できる
FWの程度が中規模 = オリジナルなFWに変更しやすい

したがってCakePHPがダントツに流行ることは間違いない
0939nobodyさん2007/12/09(日) 13:30:49ID:???
俺様分析おつかれさん
0940nobodyさん2007/12/09(日) 13:36:11ID:???
RoRがどのレンタルサーバーでも標準装備されれば
RoRが爆発的に流行すると思うが
phpで出来ることをRoRを覚えてまでやる必要があるかどうか
phpの豊富なWEB用ライブラリを超えることはまず不可能だと思う
なぜならphpはWEBだけに特化した言語だから


0941nobodyさん2007/12/09(日) 13:40:00ID:???
symfonyはFWにしては大掛かりすぎるのが難点
それゆえに自由度が利かない
案件に合わせてFWを選択するのが一番いいと思うが
CakePHPならどの案件でも使える可能性が高い
0942nobodyさん2007/12/09(日) 13:42:29ID:???
PHPはフレームワークじゃなくて、ただのスクリプト言語だからw
0943nobodyさん2007/12/09(日) 13:58:55ID:???
俺はcakeがどうだとかethnaがどうだとか言ってる奴が根絶するまで
PHP4ベースで書かれてるFWは今すぐ捨てろとここに書き続けるつもりだよ
0944nobodyさん2007/12/09(日) 15:01:24ID:???
RoRを設計を参考にしたフレームワークが沢山出ている現状だと、
爆発的に流行することはないと思う。(CakePHPもそうだしね)
それにどう頑張ってもRubyは遅い。
0945nobodyさん2007/12/09(日) 15:26:21ID:???
Ruby のブロックをPHPに移植してケロ
0946nobodyさん2007/12/09(日) 15:47:26ID:???
せめてクロージャでもあればいいんだけどな
0947nobodyさん2007/12/09(日) 16:40:22ID:???
ブロック付いて、配列が[]で書けて、配列とハッシュが区別されて、
型が全部オブジェクトになって、組込クラスが整理されて、
オープンクラスになって組込クラスも自由に書き換えられるようになったら
PHPで本気出す
0948nobodyさん2007/12/09(日) 16:57:14ID:???
それPHPの意味なくね?
0949nobodyさん2007/12/09(日) 18:14:30ID:???
糞言語でもそこそこ何でもできるので
一度覚えるとそこに安住してしまいがちなのがPHPの最大の欠点だな
0950nobodyさん2007/12/09(日) 18:52:11ID:???
HTMLに埋め込めて、$_REQUESTと$_SESSIONがいつでも呼び出せる。これ以上望む物はないよ。
0951nobodyさん2007/12/09(日) 19:05:19ID:???
PHPのセッション実装なんてヘッポコじゃないですか
0952nobodyさん2007/12/09(日) 19:37:21ID:???
>>942
> PHPはフレームワークじゃなくて、ただのスクリプト言語だからw

Rubyははフレームワークじゃなくて、ただのスクリプト言語だからw

で?
0953nobodyさん2007/12/09(日) 20:10:57ID:???
で?
0954nobodyさん2007/12/09(日) 20:53:42ID:???
     /ニYニヽ 
    /( ゚ )( ゚ )ヽ 
   /::::⌒`´⌒::::\   でっていうwwwwwwww 
  | ,-)___(-、| 
  | l   |-┬-|  l | 
   \   `ー'´   /
0955nobodyさん2007/12/09(日) 21:04:50ID:???
釣りばっかだな
0956nobodyさん2007/12/09(日) 21:26:06ID:???
>>943 同意
まあレンサバもPHPなんて動けばいいんだろって思ってるから
なかなかPHP5に全面移行できないってのはいいんだけど、
環境が選べる状況で開発している奴らでもPHP4を引きずったり
いつまでもEUC-JPで書いてみたりっていうのは正直吐き気がする。

携帯だからってソースもSJISで書くとか、もういい加減にしてくれ。
UTF-8通る携帯もたいがい増えてるっていうのをなんで敢えて
スルーかな。

なんか質の悪いやや古参PHPerが癌すぎる。
0957nobodyさん2007/12/09(日) 21:33:46ID:???
>>56
UTF-8通らないケータイではSJISで書く
UTF-8通るケータイではSJISも通る
世の中のケータイがすべてUTF-8通るならまだしも、そうでないならSJISで書くのは合理的だと思うけど。
0958nobodyさん2007/12/09(日) 21:40:40ID:???
SJISでソース書くやつはバカ
0959nobodyさん2007/12/09(日) 22:03:27ID:???
内部(ソースコード含む)はすべてUTF-8で統一し、
入力と出力時にSJISなりに変換すれば良いだけの話だろ。
0960nobodyさん2007/12/09(日) 22:09:00ID:???
>>958
いや、そうじゃない。
SJISでソースを書くにしてもoutputで、UTF->Shift-JISに正しく変換できない実装がバカ
そのあたりはやっとPHP6で改善される可能性もあるけど、iconvとかmb_*系の実装はどうなるんだとか
そもそもMS932系の実装はどうなるんだろうか、なんてのを正しく議論していないPHPの上の人らがバカ
あと、全然関係ないけど、javaに近づけとはいわないけど、言語実装を議論せずに矛盾ばかり生み出す言語実装を作ってる上のひとらがバカ
0961nobodyさん2007/12/09(日) 22:17:02ID:???
つまり携帯のフロントもあるバックエンドをEUCで書くやつは問題なく馬鹿、てことでおk?
0962nobodyさん2007/12/09(日) 22:40:08ID:???
>>960
それ(変換とか)よりもSJISの場合はダメ文字絡みがやっぱり一番大きいと思うんだ。
シングルバイト圏の作るライブラリとか。

大体文字コードの変換なんてかつては「必要悪」だったのが今やただのオーバヘッドや
不具合の温床だと思ってそれほど間違ってるかな。

要はWindowsさえ次のOSでごにょごにょやってSJIS(CP932?)捨ててくれれば、問題の
大部分はweb系に関してはほとんど片づきそうな気もする。
0963nobodyさん2007/12/09(日) 23:28:47ID:???
結局PHP使う奴はバカでFA
0964nobodyさん2007/12/10(月) 00:20:34ID:???
携帯サイトならSJISで統一した方が問題が少ない。当たり前のこと。
0965nobodyさん2007/12/10(月) 00:40:52ID:???
>>964
そりゃ携帯実機側の問題は少ないと期待できる(実装・運用されて長いから)かもしれないが、
サーバアプリ構築側でどうかっていう話だろ。

もしUTF-8で統一できればより問題は少なくなりそうだけどな。
絵文字に関しても、だいたいUNICODEにシフトしてるんじゃないの?少なくとも流れは。

そういうのを問答無用で「SJISで統一した方が・・・」「当たり前」って言うのが「癌」てことだろ

まとめた情報を軽く探してみて
ttp://miniturbo.org/memo/2006/12/29/034842/
↑ 一年前の記事くらいしか見つからないのが、なんだかなぁな気分だ。
0966nobodyさん2007/12/10(月) 00:56:27ID:???
脳内妄想するやつにかぎって
バカとか当たり前とかで終わるのな
0967nobodyさん2007/12/10(月) 01:00:14ID:tYVuGNNs
もう携帯もUTF-8で書いて大丈夫だよ。
ソース俺
0968nobodyさん2007/12/10(月) 02:45:37ID:???
SJISってDBにぶちこむとDBがぶっ壊れるんでしょ?
0969nobodyさん2007/12/10(月) 10:29:12ID:???
そう、そのことを SQL injection という。
0970nobodyさん2007/12/10(月) 15:08:00ID:???
>>969
みえみえの釣りはよそに逝ってやってくれませんかね
0971nobodyさん2007/12/10(月) 15:16:12ID:???
>>970
みえみえの釣りはよそに逝ってやってくれませんかね
0972nobodyさん2007/12/10(月) 17:06:25ID:???
話の流れがよーわからんが、
http://jp.php.net/manual/ja/ref.mbstring.php
の「PHP で動作しないと思われる文字エンコーディングの例を以下に示します。」に、はっきりとSJISって挙げられているんだが。
マニュアル読んでる人って居ないの?
レス数が950を超えています。1000を超えると書き込みができなくなります。