1 名前:nobodyさん [2007/10/17(水) 16:01:41 ID:72/gWtt1] 前スレ pc11.2ch.net/test/read.cgi/php/1181350116/
846 名前:nobodyさん mailto:sage [2007/12/02(日) 19:03:29 ID:???] >>842 横レスすまんけど DIつう仕組みがすでにあるのに俺俺ファクトリーみたいなのを使う理由って何だ? 煽りじゃなくて単純な疑問。答えてくれるとうれしい
847 名前:nobodyさん mailto:sage [2007/12/02(日) 20:19:53 ID:???] >>846 必要ないから。大げさだから。学習コストがかかるから。 俺俺ファクトリーで済むのにわざわざDIを使う理由は何だ? Javaは融通がきかないからDIコンテナを使うのはわかる。 でも何でも実行時に行うスクリプト言語でわざわざ手間掛けてDIコンテナを使う理由はあるのか? 設定ファイル(config.php): <?php $klass = 'Foo'; ?> main.php: <?php require_once('config.php'); $obj = new $klass(); ?> これですむような言語にDIなんて必要ないだろ。
848 名前:844 mailto:sage [2007/12/02(日) 21:17:48 ID:???] >>845 お前Hawkさんとこに糞なコメント残したtestと同じタイプか? 何かしらプライベートであったからあーいう結末になったんだろ? 俺はあの人のサイトには随分世話になったんだ。 そういう言い方すんな、日本のPHP界にとっても有益な人だっんだ。
849 名前:nobodyさん mailto:sage [2007/12/02(日) 21:27:44 ID:???] 本人乙 これでいいかな?
850 名前:nobodyさん mailto:sage [2007/12/02(日) 22:03:43 ID:???] 高度に発達したFW信者はネットストーカーと区別がつかない
851 名前:nobodyさん mailto:sage [2007/12/02(日) 22:21:46 ID:???] >>848 糞なコメントって何だ? 事情は知らんが印象に残ってただけで中傷する意図はない プライベートどうこうじゃなくて個人の資質の問題だろう 気づいたこと自体は気づかないままよりいいんじゃね
852 名前:nobodyさん mailto:sage [2007/12/03(月) 00:08:04 ID:???] >>841 はDI厨。 >>846 は訓練されたDI厨。
853 名前:nobodyさん mailto:sage [2007/12/03(月) 01:09:56 ID:???] 何故にseasaaは叩かれないのだ。
854 名前:nobodyさん mailto:sage [2007/12/03(月) 01:37:18 ID:???] >>847 俺俺ファクトリーもそうだけど、ソースの修正量が増えたときに インスタンス管理なんかを誰が管理しなくちゃ行けない場面が沢山あるんだよ。 少人数でソースの管理を行っているなら、コミットログとかコミュニケーションの範疇で なんとかなるけど、規模が大きくなってくるとそれが大変になってくるんだ。 確かに俺俺ファクトリーでも十分使えるけど >>847 の書いたようなコードが、実際に動く部分に混入するとそれこそ苦労倍増なんだよ。 だから、みんなでコンテナに登録してテストとかの際に切り替えは コンテナからやっちゃいましょうね。っていう仕組みがDIで簡単にできる。 また、AOPについては前にも書いたけど、誰かがソースを修正しているときに そのソースの修正を待たずに、処理を追加できる利点があるんだ。 ソースの完了を待って、自分のコードを書くのじゃ遅いから、 あらかじめインタフェースとかを切っておいて決まり事をつける事で 誰かに待たされる事なくプログラムを進める事ができるんだ。 って、長文すまん
855 名前:nobodyさん mailto:sage [2007/12/03(月) 01:43:48 ID:???] 俺俺ファクトリーかDIかっていうのは結局のところ程度問題なわけか? コンパクトで少人数なら俺俺、でかくて大人数ならDI、とかそういう感じ?
856 名前:nobodyさん mailto:sage [2007/12/03(月) 03:11:05 ID:???] >>854 >少人数でソースの管理を行っているなら、コミットログとかコミュニケーションの範疇で >なんとかなるけど、規模が大きくなってくるとそれが大変になってくるんだ。 >確かに俺俺ファクトリーでも十分使えるけど >>>847 の書いたようなコードが、実際に動く部分に混入するとそれこそ苦労倍増なんだよ。 おまえが何を問題にしているのかを明確にしてほしいんだけど、「(インスタンス管理のための)コードが、実際に動く部分に混入するとそれこそ苦労倍増」になることが問題ということでOK? この前提が正しいとしたら、解答は「混入させない」。混入してたらそれはバグだから修正する。それだけ。 でもこれってJavaでも一緒だよね。Javaだと混入させない魔法でもあるの? >だから、みんなでコンテナに登録してテストとかの際に切り替えは >コンテナからやっちゃいましょうね。っていう仕組みがDIで簡単にできる。 だからそんなことはDIじゃなくても十分できるの。特にスクリプト言語なら。 >また、AOPについては前にも書いたけど、誰かがソースを修正しているときに >そのソースの修正を待たずに、処理を追加できる利点があるんだ。 違うだろ。AOPの利点は次の2つ。 * 既存のクラスに手を加えることなく処理を追加できること * クラス階層を横断して機能を追加できること >ソースの完了を待って、自分のコードを書くのじゃ遅いから、 >あらかじめインタフェースとかを切っておいて決まり事をつける事で >誰かに待たされる事なくプログラムを進める事ができるんだ。 それはAOP関係なくて、mockとかdriverとかstubとかいうものでやること。AOPである必要はない。
857 名前:nobodyさん mailto:sage [2007/12/03(月) 03:56:12 ID:???] 白熱だなあ
858 名前:nobodyさん [2007/12/03(月) 10:25:24 ID:aJcrBH5W] AOPとかDIとかよくわかってない俺
859 名前:nobodyさん mailto:sage [2007/12/03(月) 11:07:06 ID:???] AOPとかDIとか全くわかってない俺も来ましたよ
860 名前:nobodyさん mailto:sage [2007/12/03(月) 11:18:21 ID:???] 誰か忘れたけど、Perl on Railsを作ってるみたいだね。 って完全にスレ違いだな。スマソ
861 名前:nobodyさん mailto:sage [2007/12/03(月) 11:31:44 ID:???] >>860 どの言語でもパクれるんですね。 んならPHPでいいや。 【総合】PHPフレームワークを語るスレ8 pc11.2ch.net/test/read.cgi/php/1192604501/l50
862 名前:nobodyさん mailto:sage [2007/12/03(月) 18:20:40 ID:???] slashdot.jp/security/article.pl?sid=07/12/02/1931233 MD5脂肪でPHP脂肪wwww
863 名前:nobodyさん mailto:sage [2007/12/03(月) 18:35:44 ID:???] >>862 は釣りですか
864 名前:nobodyさん mailto:sage [2007/12/03(月) 21:09:02 ID:???] MD5脂肪→PHPはセッションでMD5値を使っている→三段論法でPHP脂肪www
865 名前:nobodyさん mailto:sage [2007/12/03(月) 22:25:35 ID:???] >>864 も釣りですか
866 名前:nobodyさん mailto:sage [2007/12/04(火) 00:23:04 ID:???] Javaで有効だったからPHPでも有効だと思ってるやついるね。 きっとDIとAOPがはやってるからという理由で勉強したJavaプログラマー、社会人3年目くらいか。
867 名前:nobodyさん mailto:sage [2007/12/04(火) 00:43:22 ID:???] 個人的には人が書いた俺俺ファクトリーをいじるの(っていうかコード見るの)はやだなあ 使える場面では使ってもいいとおもうよ>DI 少なくとも毛嫌いするようなもんでもないと思う
868 名前:nobodyさん mailto:sage [2007/12/04(火) 00:47:26 ID:???] そんなに駄目かな?DI。
869 名前:nobodyさん mailto:sage [2007/12/04(火) 00:48:51 ID:???] 静的型付け言語であるJavaと PHPを比べてる時点でナンセンスだと思うけどね
870 名前:nobodyさん mailto:sage [2007/12/04(火) 01:08:03 ID:???] >>867 人が書いた俺オレfactoryと、人が書いたDIコンテナと、どう違うというのだろう。 >少なくとも毛嫌いするようなもんでもないと思う 嫌ってるんじゃなくて、DIコンテナを使ってうれしい場面がPHPではないってことだろ。好き嫌いの話じゃない。 そんなにいうなら、どう嬉しいのかをちゃんと語ればいいじゃん。ちゃんと説得力を持って。 説得力のある理由がでてきてないから必要ないといわれるわけで。
871 名前:nobodyさん mailto:sage [2007/12/04(火) 01:23:40 ID:???] >>869 スクリプト言語にDIを勧めるほうがナンセンス
872 名前:nobodyさん mailto:sage [2007/12/04(火) 01:31:29 ID:???] DIとMockとAOPの違いを簡潔に教えて頂戴>えろい方 俺の低レベルな理解力では次のように理解 DI:クラスを置き換えできる。 AOP:メソッドを追加したり置き換えできる。 Mock:DIと同じ?(DIをテスト用途で使うことに特化した呼び名?) あとmixinってのもあるよね。 mixin=AOP?
873 名前:nobodyさん mailto:sage [2007/12/04(火) 10:29:36 ID:???] >>872 AOPは既存処理の前後に共通化された処理を挿入する。(前後とは限らない?) mix-inは、共通で使う処理を関数化しておいて、それを任意のクラスのメソッドとして使えるようにする。 とか俺も半端な知識で言っている。 てかスレ違い。この辺の議論やると終わらないし。
874 名前:nobodyさん mailto:sage [2007/12/04(火) 12:15:47 ID:???] phpで使えるdiコンテナてあるのな scarletとか手軽そうだね
875 名前:nobodyさん mailto:sage [2007/12/04(火) 12:38:33 ID:???] >>870 >人が書いた俺オレfactoryと、人が書いたDIコンテナと、どう違うというのだろう。 少なくとも同じじゃないだろ 俺俺ファクトリーだと、大規模化したときコードの見通し悪くなるよ >>870 自身がどんな場合でもファクトリパターンで対応して DIなんていらねーって言うんならもう何も言うことないけど
876 名前:nobodyさん mailto:sage [2007/12/04(火) 16:47:36 ID:???] >>875 >俺俺ファクトリーだと、大規模化したときコードの見通し悪くなるよ コードって、どれを指してる? 例えば>>847 の例だと設定ファイルとメインファイルの両方ともPHPのコードなんだけど、どっちのコードの見通しが悪くなると思ってる? >DIなんていらねーって言うんならもう何も言うことないけど DIの概念自体を否定してるんじゃなくて、何でも動的なスクリプト言語ならDIコンテナをわざわざ導入する必要がないといってるだけ。 DIでやろうとしていることは、スクリプト言語なら言語仕様の範囲で簡単に実現できる。 PHPでもDIコンテナが役に立つ例をだれも出せてないじゃん。それを示せばみんな納得できるのに、出しもしないでDIマンセーされてもな。
877 名前:nobodyさん mailto:sage [2007/12/04(火) 18:03:00 ID:???] ほっとけよ。DI議論はもういい。 PHPでウェブプログラミングなんて、そもそも小規模なのばっかだし。
878 名前:nobodyさん mailto:sage [2007/12/04(火) 18:30:24 ID:???] まとめようか。 ・DIの概念はPHPにおいても有効である。 ・ただし、PHPでは>>847 のように比較的簡単に実現できる。 ・大掛かりな仕組みは必要ないじゃん。 JavaではDI必須。っていうのが当たり前になりつつあるようだけど スクリプト言語では>>847 のように比較的簡単にできてしまうことが、 静的型付き言語であるJavaでは一筋縄では実現できないから、Springとか Seasarとかそういう大掛かりな仕組みが必要ってだけじゃない? あと、Java的にはDI使うとクラス関係が疎結合になり コンパイルが早くなるらしいね。 PHPの場合、大掛かりなDIを導入するメリットがJavaほどには無いように思う。 >>877 そういうなよ。 なぜ、ぶった切ろうとする? 新しい話題提供できるならして欲しい。 DIについて話題になったのは、このスレでは初めてじゃない? smarty必要か?PHPにフレームワークは必要か?とか 毎度毎度の定期ループしてる話題よりよほど良いと思うがな。
879 名前:nobodyさん mailto:sage [2007/12/04(火) 19:29:14 ID:???] 自分が分からない話題が続くとイライラしちゃうんじゃないの?たぶん。 気にすることないよ。
880 名前:nobodyさん mailto:sage [2007/12/04(火) 19:47:46 ID:???] >>878 AOPについではどうだろうか。 JavaでDIのメリットの一つとして、AOPが簡単にできることが挙げられる。 というか、AOPなしだとDIのメリットは半減する。 ・PHPでもAOPは有効か?(どんなときに?) ・PHPではAOPも簡単に実現できるか?(YESなら大掛かりな仕組みはいらない)
881 名前:877 mailto:sage [2007/12/04(火) 20:39:47 ID:???] いや俺はDIいらないでおk。スクリプト言語にはナンセンスで。 てかjavaでもいいや。xmlに書くとかもうウンザリ。 コード読んだ方がどこで何やってるかわかりやすいわ。 他人の俺俺ファクトリーでもスキルある奴が作ってればそれでいい。 だいたいソース読んで困るのは、ファクトリとかそんな知識すらないバカのだし。
882 名前:nobodyさん mailto:sage [2007/12/05(水) 01:58:35 ID:???] 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のメリットはこんな感じだった。 スクリプト言語でも十分使えると思う。管理という面においては。
883 名前:nobodyさん mailto:sage [2007/12/05(水) 02:04:50 ID:???] japan.zdnet.com/security/story/0,3800079245,20362451,00.htm Apache 2.0系、2.2系にクロスサイトスクリプティングの脆弱性 Apache脂肪でPHPまたもや脂肪www
884 名前:nobodyさん mailto:sage [2007/12/05(水) 02:15:00 ID:???] >>883 先生!これはPHPだけの問題なのですか?
885 名前:nobodyさん mailto:sage [2007/12/05(水) 08:48:32 ID:???] >>884 そういうことにしといてやれ もしくはスルーで
886 名前:nobodyさん mailto:sage [2007/12/05(水) 09:18:00 ID:???] >>882 >ときどきデバッグ用に >$hoge = 'OtherClass' >とかって書いちゃってるコードが混入して、結合テストがすごく大変だったトラウマがある。 これはデバッグ用のコードが本番用コードに紛れ込んでいたという話だよね?DI関係なくね? DIコンテナ使ってても、各自がデバッグ用にconfig.xmlをいじって、それが本番環境に反映されたら同じことだよね。 >あと、依存関係が全然整理されてなくて 依存関係って、例えばどんなの?イメージがわからん。具体例で詳しく。 >何をnewできるのか、何が newされる対象なのかがわからなくて、保守のときに大変だったトラ ウマがある。 これ、DIコンテナで解消できるの? Javaはclassやinterfaceを使って型を縛れるから、どんなオブジェクトを指定できるかはわかるけど、PHPは変数に型がないから、どんなオブジェクトがくるかは指定できない。 これは言語の仕様によるものであって、DIを導入したからといって変わることはないはずだけど。 >(ドキュメントがあまり書かれてなかったんだよね...) 逆にいえば、ドキュメントを書けば済む話?
887 名前:nobodyさん mailto:sage [2007/12/05(水) 10:42:51 ID:???] >>886 >DIコンテナ使ってても、各自がデバッグ用にconfig.xmlをいじって、それが本番環境に反映されたら同じことだよね。 いや、そういう意味ではなく、デバッグコードが混在してしまったけど、それを探すのに非常に手間がかかるってことをいいたい。 スクリプト言語だから、どこかで変数を変更してもデバッグそるまで、どう動くのか分からない だからコンテナをファクトリみたいに使って記述を統一した。 ここに、設定ファイル云々は関係ない >これ、DIコンテナで解消できるの? Javaはclassやinterfaceを使って型を縛れるから、どんなオブジェクトを指定できるかはわかるけど、PHPは変数に型がないから、どんなオブジェクトがくるかは指定できない。 これこそがDI導入によるメリットだと思うが?必要とされるべきオブジェクトはコンテナによって注入される事で、依存関係を解決できるでしょ。 だからへたにnewするんじゃなくて、newするものをコンテナに置く。 >逆にいえば、ドキュメントを書けば済む話? ぶっちゃけいえばそうだね、ドキュメントに事細かに書かれてれば大丈夫だったと思う。 でも依存関係とかってドキュメントしにくい部品でもある
888 名前:nobodyさん mailto:sage [2007/12/05(水) 11:58:35 ID:???] >>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ファイルに書くことと、どう違うのかちゃんと説明してくれ。 >ぶっちゃけいえばそうだね、ドキュメントに事細かに書かれてれば大丈夫だったと思う。 >でも依存関係とかってドキュメントしにくい部品でもある だから何をもって依存関係といってるの
889 名前:nobodyさん mailto:sage [2007/12/05(水) 12:17:17 ID:???] ごめん、>>886 じゃなくて>>887 でした。
890 名前:nobodyさん mailto:sage [2007/12/05(水) 12:21:46 ID:???] >>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では混乱しないという理由を示してくれ。
891 名前:887じゃないけど mailto:sage [2007/12/05(水) 12:49:30 ID:???] なんかそのコード見せられると、configファイルはさすがにXMLに してもらいたいと感じてしまう。 もっと規模が大きくなってから大々的な移行しなきゃならなくなって 設定ファイルを再利用する場合とか、XSLT等で簡単&きれいに移行 できるし。 で、もしDIの設定にXML使うとすると、DIコンテナがその辺りのこと を面倒見てくれるんだったら、それだけでも利用価値ありそう。
892 名前:nobodyさん mailto:sage [2007/12/05(水) 12:50:34 ID:???] congif見てザンギエフ思い出した俺ガイル
893 名前:nobodyさん mailto:sage [2007/12/05(水) 13:36:32 ID:???] やっぱりXMLは醜悪だな。設定ファイルはS式にするべきだ。
894 名前:nobodyさん mailto:sage [2007/12/05(水) 13:52:03 ID:???] >>891 利点ってそれだけ? Java使ってる他のやつに聞きたいんだけど、設定ファイルをXSLT使って移行するなんてこと本当にするの?そんなプロジェクト今まで見たことも聞いたこともない。 891はほんとにそれをしたことあるの?あるかもしれないという妄想を語っても仕方なくね? それにおまえのconfig.xmlは手作業での移行ができないほど巨大なのか?おれはせいぜい50行いかない程度なんだけど。 数十行の移行をXSLTで自動化するためだけに、わざわざDIコンテナを勉強して導入するコストは払えん。しかもそんな場面が将来あるかどうかも分からないのに。
895 名前:nobodyさん mailto:sage [2007/12/05(水) 14:03:29 ID:???] >設定ファイルをXSLT使って移行するなんてこと本当にするの ないないw ありもしないことを想定して無駄に作業増やすのがJava厨。 strutsのときも、フォワードのパスとかバリデータとか全部XML。 こんなもんプログラムに埋め込んだ方がいいと思うんだけど・・・ っていったらビルドのコストがとわけのわからないことを言う。 Java厨って変更の可能性のあるところは全部XMLに追い出した方が 保守性が高いという妄想に取り憑かれすぎ。 XMLに追い出すとソースと2重管理になってウザイって。 DBの設定とかローカライズのメッセージとか、そういうのだけでいいよ。 クラスの名前とかそんなもん追い出すとろくなことにならない。
896 名前:nobodyさん mailto:sage [2007/12/05(水) 14:32:00 ID:???] まあCやらJavaやらコンパイル言語使うと、ソースファイルの中には 設定値を書きたくないという気持ちは理解できる。
897 名前:895 mailto:sage [2007/12/05(水) 14:35:03 ID:???] >>896 クラス名は設定値じゃないからなー 言語に依存してる物はソースに書く方が俺は良いと思う。 DIとか使わなくてもまともに動いて保守性の高いプログラムは書ける。 だったら使わない方法で俺は行く。
898 名前:nobodyさん mailto:sage [2007/12/05(水) 14:39:05 ID:???] ファクトリー厨の方々、必死すぎだろ DI否定しないと気がすまんのな
899 名前:nobodyさん mailto:sage [2007/12/05(水) 15:13:55 ID:???] DI否定する気は無いがPHPで使う気にはなれない
900 名前:nobodyさん mailto:sage [2007/12/05(水) 15:33:26 ID:???] >>895 >strutsのときも、フォワードのパスとかバリデータとか全部XML。 >こんなもんプログラムに埋め込んだ方がいいと思うんだけど・・・ 禿同 XMLに外だししなくてもいいものまで外だししないといけないのがアホらしい。 入力→確認→登録だけの簡単なページ遷移もXMLに書くのが面倒くさくて仕方なかった。 遷移先が変更になることなんかないんだって、簡単なアプリなら。 面倒を強制するな。
901 名前:nobodyさん mailto:sage [2007/12/05(水) 15:36:14 ID:???] >>894-895 俺の場合はPHPとは全く関係ないが、すでに出来上がってるシステムの スケーラビリティ向上+UIの一新を目的に大部分を書き直したことある けど、そのときに設定ファイルの変更点はかなり少なかったからXSLT 使ったよ。 別に設定ファイルがデカイからではなく、そのシステムをデプロイして 使っている人が多かったから一挙に対応するために移行用のXSLT用意し たらずいぶんあっさり終わった。
902 名前:nobodyさん mailto:sage [2007/12/05(水) 15:42:51 ID:???] >>898 891=887乙
903 名前:nobodyさん mailto:sage [2007/12/05(水) 16:40:47 ID:???] PHP3年ぶりぐらいに使おうと思って色々調べて、最近はPHPもフレームワークかと思いつつ どれ使おうかと探したが、まあ一応本家だしZend試してみようかとサイトいったんだが どうにもつながんねえ。 Zendframeworkって今落とせるのか? ttp://framework.zend.com/ ここ自体応答無しなんだけど。
904 名前:nobodyさん mailto:sage [2007/12/05(水) 17:01:28 ID:???] >>903 昨日はつながってたんだが、 つながらんね
905 名前:nobodyさん mailto:sage [2007/12/05(水) 17:09:29 ID:???] ttp://www.zend.com/en/ こっからZend Studioの評価版落としてインスコ インスコ先のbin\ZendFramework\libraryにFrameworkが入ってるお
906 名前:nobodyさん mailto:sage [2007/12/05(水) 17:30:30 ID:???] 3年ぶりのたまたまが偶然鯖落ちかなんかと重なったのか・・・ >>905 たまたまっぽいんで復旧するまでまつことにするわ。 余計なのインスコしてレジストリ汚したくないし。 でも情報thx
907 名前:nobodyさん mailto:sage [2007/12/05(水) 18:44:23 ID:???] DIContainerの利点は、クラス名を変えれる事ではなくて、 依存関係の注入やインスタンス管理をまとめてコンテナがやってくれる事じゃないの? つまり、あっちで作ったAのオブジェクトと、singletonのBのオブジェクトを、 この場で作ったCのオブジェクトににセットして… とかみたいなコードをいちいち書かなくて済むようになる事こそがメリットだと思う。
908 名前:907 mailto:sage [2007/12/05(水) 18:49:05 ID:???] 2文目、書いたり消したりしてたら色々変になっちまった。スルーしてくれ。
909 名前:nobodyさん mailto:sage [2007/12/05(水) 18:50:44 ID:???] >>907 これもDIコンテナなしで十分実現できるんだろうけど、せっかくだしもうちょっと話を聞かせてもらおうか。 >つまり、あっちで作ったAのオブジェクトと、singletonのBのオブジェクトを、 >この場で作ったCのオブジェクトににセットして… ここらへんを詳しく。DIコンテナのメリットが分かるような具体例つきで。
910 名前:nobodyさん mailto:sage [2007/12/05(水) 20:13:07 ID:???] >>907 じゃないけど、 DIコンテナなしでも実現できるから DIコンテナいらないってのはなんかちょっと違うと思う Javaは機能毎にコンポーネントを細かく切りまくって ひとつひとつは小さい機能でたくさんのクラスを用意する傾向がある (PHPをはじめとするスクリプト言語と比較してという意味で) でそのたくさんのクラスをできるだけ疎結合にするために ConstructorInjectionなりSetterInjectionなりで 外部からインスタンスを注入するようする、 それがDependency Injection(であってるよな、、) そうした際に、ある機能(モジュール)を使いたいと思ったときにも 上に書いたようにクラスが細かく分かれているから 様々なインスタンスを注入しなければならなくなる、 AというモジュールはBの注入が必要でBはCとDが、DはEが・・・ とインスタンス間の依存性が複雑になっていった時に、 いちいちその注入のためのコードを毎回書き直して コンパイルし直すような手間を減らすのが DIコンテナの役割だと思うんだけど >>907 もおそらくこういうニュアンスだったと思うんだが 俺も別にスクリプト言語でDIコンテナとかいらないと思う スクリプト言語だと比較的(Javaと比べて)多機能の大きなクラスを作るし コンテナで管理しないと困るなあと思うほど インスタンス間の依存関係が複雑になるケースがそんなにないから そういう意味でPHPにDIコンテナは要らんってのは分かるけど DIコンテナという仕組み自体が要らんとかだめだとか それはまたちょっと違う問題じゃないのという気はする
911 名前:nobodyさん mailto:sage [2007/12/05(水) 20:51:19 ID:???] 結局好みの問題もあるしなー でもなんにせよJavaのやり方って普及しないよね。 Javaの崇高なる理論を元にした設計方針 →バカは理解できないから徹底は難しい 優秀なエンジニアの集団 →そのプロジェクトで一番効率的なやり方を自分たちで編み出してやる
912 名前:nobodyさん mailto:sage [2007/12/05(水) 22:00:20 ID:???] 結局好み
913 名前:nobodyさん mailto:sage [2007/12/05(水) 22:10:55 ID:???] JAVAの山に幾度か登ったけど、全てリタイヤ… orz
914 名前:nobodyさん mailto:sage [2007/12/06(木) 00:19:55 ID:???] >>910 だから具体例で説明しろって。 依存関係というのが複雑な例を出して、そのXMLを書いてみせろ。 そしてそれがPHPコードで書くと複雑になるのが、DIコンテナだとすっきり書けるというのを実際に書いて示せ。 具体例を示さずにDIマンセーするのウゼエ
915 名前:nobodyさん mailto:sage [2007/12/06(木) 00:31:56 ID:???] >>910 は別に DIマンセー と言ってるわけではないだろうが なんでも噛み付くおまえもウゼエ
916 名前:nobodyさん mailto:sage [2007/12/06(木) 00:38:46 ID:???] PHPER仲違いでPHP脂肪www
917 名前:nobodyさん mailto:sage [2007/12/06(木) 00:41:48 ID:???] 何言っても具体例で説明しろとしか言えないんだろ
918 名前:nobodyさん mailto:sage [2007/12/06(木) 01:18:29 ID:???] DIコンテナ自体理解できないから具体例出して欲しいんだろうよ
919 名前:nobodyさん mailto:sage [2007/12/06(木) 02:05:44 ID:???] おまえらが具体例出せないことはよくわかった
920 名前:nobodyさん mailto:sage [2007/12/06(木) 10:46:27 ID:???] バイトがゴキブリ揚げてケンタッキー脂肪wwwwwwwwwwwwwwwww news.livedoor.com/article/detail/3417675/
921 名前:nobodyさん mailto:sage [2007/12/06(木) 11:19:50 ID:???] DIの具体例って前から説明されてね? っていうか具体例だしても、挙げ足なら誰も書けないと思うんだけど。
922 名前:nobodyさん mailto:sage [2007/12/06(木) 11:23:59 ID:???] DIを理解できない頭の悪さを他人のせいにしてるだけだよ 一連の書き込み見てりゃわかるけど
923 名前:nobodyさん mailto:sage [2007/12/06(木) 13:32:45 ID:???] >>921 >DIの具体例って前から説明されてね? どこに?
924 名前:nobodyさん mailto:sage [2007/12/06(木) 13:35:42 ID:???] >>923 に、わかりやすく言えば、班長さんみたいなもんだ。
925 名前:nobodyさん mailto:sage [2007/12/06(木) 13:42:24 ID:???] >>921 の文章が難解だと思うのは俺だけでしょうか?
926 名前:nobodyさん mailto:sage [2007/12/06(木) 17:06:31 ID:???] 残り少ないレス可能数に、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 だったりするのでまだ未実装なのか記述ミスなのかもわかりません。。。 どうやったらうまくいくのかヒントでも何でもいいので、お示しをお願いします。。。
927 名前:nobodyさん mailto:sage [2007/12/06(木) 17:13:51 ID:???] そんなの使わなければ、つまづく事も無いのにね。
928 名前:nobodyさん mailto:sage [2007/12/08(土) 05:30:02 ID:???] japan.zdnet.com/security/story/0,3800079245,20362715,00.htm OSX脂肪でPHP脂肪www
929 名前:nobodyさん mailto:sage [2007/12/08(土) 17:30:22 ID:???] PHPやっててフォークやソケットやスレッドの知識が身に付きますか? 同じスクリプト言語でもPerlなら付きます PHPしかしないのは技術者として自殺行為です 初心者こそ最初は他の言語をしましょうね
930 名前:nobodyさん mailto:sage [2007/12/09(日) 01:24:32 ID:???] PHPのことを知らないのなら 黙ってれば恥かかなくてすむのにねw
931 名前:nobodyさん mailto:sage [2007/12/09(日) 05:26:30 ID:???] PHP自体がフレームワーク
932 名前:nobodyさん mailto:sage [2007/12/09(日) 05:32:16 ID:???] まあフレームワークは制限だからな
933 名前:nobodyさん mailto:sage [2007/12/09(日) 05:33:35 ID:???] このスレを見ている人はこんなスレも見ています。(ver 0.20) フケ・痒みがとまらないPart9 [身体・健康] まだ止まらないのかよw
934 名前:nobodyさん mailto:sage [2007/12/09(日) 07:36:41 ID:???] もともとフレームワークのPHP使ってフレムーワーク作る人って恥ずかしくないのかなw
935 名前:nobodyさん mailto:sage [2007/12/09(日) 07:44:51 ID:???] そんな事言ったら、どの言語だってそうだろ。 ちなみにフレムーワークは作った事ないけど。
936 名前:nobodyさん [2007/12/09(日) 12:05:37 ID:v5bnJUO2] 俺もそろそろフレームワークデビューしてみたい(っ´∀`)っ
937 名前:nobodyさん mailto:sage [2007/12/09(日) 12:20:44 ID:???] PHPはフレームワークとしては貧弱だからな 1枚ぐらい皮を被せたくなるぞ 俺は薄い皮希望だがな
938 名前:nobodyさん mailto:sage [2007/12/09(日) 13:22:15 ID:???] より多くの案件をこなすのが目的なら CakePHP 導入までの敷居が低い = 設置できるレンタルサーバーが多くなる 難易度が低い = 多くの技術者がすぐにプロジェクト参加できる FWの程度が中規模 = オリジナルなFWに変更しやすい したがってCakePHPがダントツに流行ることは間違いない
939 名前:nobodyさん mailto:sage [2007/12/09(日) 13:30:49 ID:???] 俺様分析おつかれさん
940 名前:nobodyさん mailto:sage [2007/12/09(日) 13:36:11 ID:???] RoRがどのレンタルサーバーでも標準装備されれば RoRが爆発的に流行すると思うが phpで出来ることをRoRを覚えてまでやる必要があるかどうか phpの豊富なWEB用ライブラリを超えることはまず不可能だと思う なぜならphpはWEBだけに特化した言語だから
941 名前:nobodyさん mailto:sage [2007/12/09(日) 13:40:00 ID:???] symfonyはFWにしては大掛かりすぎるのが難点 それゆえに自由度が利かない 案件に合わせてFWを選択するのが一番いいと思うが CakePHPならどの案件でも使える可能性が高い
942 名前:nobodyさん mailto:sage [2007/12/09(日) 13:42:29 ID:???] PHPはフレームワークじゃなくて、ただのスクリプト言語だからw
943 名前:nobodyさん mailto:sage [2007/12/09(日) 13:58:55 ID:???] 俺はcakeがどうだとかethnaがどうだとか言ってる奴が根絶するまで PHP4ベースで書かれてるFWは今すぐ捨てろとここに書き続けるつもりだよ
944 名前:nobodyさん mailto:sage [2007/12/09(日) 15:01:24 ID:???] RoRを設計を参考にしたフレームワークが沢山出ている現状だと、 爆発的に流行することはないと思う。(CakePHPもそうだしね) それにどう頑張ってもRubyは遅い。
945 名前:nobodyさん mailto:sage [2007/12/09(日) 15:26:21 ID:???] Ruby のブロックをPHPに移植してケロ
946 名前:nobodyさん mailto:sage [2007/12/09(日) 15:47:26 ID:???] せめてクロージャでもあればいいんだけどな
947 名前:nobodyさん mailto:sage [2007/12/09(日) 16:40:22 ID:???] ブロック付いて、配列が[]で書けて、配列とハッシュが区別されて、 型が全部オブジェクトになって、組込クラスが整理されて、 オープンクラスになって組込クラスも自由に書き換えられるようになったら PHPで本気出す
948 名前:nobodyさん mailto:sage [2007/12/09(日) 16:57:14 ID:???] それPHPの意味なくね?
949 名前:nobodyさん mailto:sage [2007/12/09(日) 18:14:30 ID:???] 糞言語でもそこそこ何でもできるので 一度覚えるとそこに安住してしまいがちなのがPHPの最大の欠点だな
950 名前:nobodyさん mailto:sage [2007/12/09(日) 18:52:11 ID:???] HTMLに埋め込めて、$_REQUESTと$_SESSIONがいつでも呼び出せる。これ以上望む物はないよ。
951 名前:nobodyさん mailto:sage [2007/12/09(日) 19:05:19 ID:???] PHPのセッション実装なんてヘッポコじゃないですか
952 名前:nobodyさん mailto:sage [2007/12/09(日) 19:37:21 ID:???] >>942 > PHPはフレームワークじゃなくて、ただのスクリプト言語だからw Rubyははフレームワークじゃなくて、ただのスクリプト言語だからw で?
953 名前:nobodyさん mailto:sage [2007/12/09(日) 20:10:57 ID:???] で?
954 名前:nobodyさん mailto:sage [2007/12/09(日) 20:53:42 ID:???] /ニYニヽ /( ゚ )( ゚ )ヽ /::::⌒`´⌒::::\ でっていうwwwwwwww | ,-)___(-、| | l |-┬-| l | \ `ー'´ /
955 名前:nobodyさん mailto:sage [2007/12/09(日) 21:04:50 ID:???] 釣りばっかだな
956 名前:nobodyさん mailto:sage [2007/12/09(日) 21:26:06 ID:???] >>943 同意 まあレンサバもPHPなんて動けばいいんだろって思ってるから なかなかPHP5に全面移行できないってのはいいんだけど、 環境が選べる状況で開発している奴らでもPHP4を引きずったり いつまでもEUC-JPで書いてみたりっていうのは正直吐き気がする。 携帯だからってソースもSJISで書くとか、もういい加減にしてくれ。 UTF-8通る携帯もたいがい増えてるっていうのをなんで敢えて スルーかな。 なんか質の悪いやや古参PHPerが癌すぎる。
957 名前:nobodyさん mailto:sage [2007/12/09(日) 21:33:46 ID:???] >>56 UTF-8通らないケータイではSJISで書く UTF-8通るケータイではSJISも通る 世の中のケータイがすべてUTF-8通るならまだしも、そうでないならSJISで書くのは合理的だと思うけど。
958 名前:nobodyさん mailto:sage [2007/12/09(日) 21:40:40 ID:???] SJISでソース書くやつはバカ
959 名前:nobodyさん mailto:sage [2007/12/09(日) 22:03:27 ID:???] 内部(ソースコード含む)はすべてUTF-8で統一し、 入力と出力時にSJISなりに変換すれば良いだけの話だろ。
960 名前:nobodyさん mailto:sage [2007/12/09(日) 22:09:00 ID:???] >>958 いや、そうじゃない。 SJISでソースを書くにしてもoutputで、UTF->Shift-JISに正しく変換できない実装がバカ そのあたりはやっとPHP6で改善される可能性もあるけど、iconvとかmb_*系の実装はどうなるんだとか そもそもMS932系の実装はどうなるんだろうか、なんてのを正しく議論していないPHPの上の人らがバカ あと、全然関係ないけど、javaに近づけとはいわないけど、言語実装を議論せずに矛盾ばかり生み出す言語実装を作ってる上のひとらがバカ
961 名前:nobodyさん mailto:sage [2007/12/09(日) 22:17:02 ID:???] つまり携帯のフロントもあるバックエンドをEUCで書くやつは問題なく馬鹿、てことでおk?
962 名前:nobodyさん mailto:sage [2007/12/09(日) 22:40:08 ID:???] >>960 それ(変換とか)よりもSJISの場合はダメ文字絡みがやっぱり一番大きいと思うんだ。 シングルバイト圏の作るライブラリとか。 大体文字コードの変換なんてかつては「必要悪」だったのが今やただのオーバヘッドや 不具合の温床だと思ってそれほど間違ってるかな。 要はWindowsさえ次のOSでごにょごにょやってSJIS(CP932?)捨ててくれれば、問題の 大部分はweb系に関してはほとんど片づきそうな気もする。
963 名前:nobodyさん mailto:sage [2007/12/09(日) 23:28:47 ID:???] 結局PHP使う奴はバカでFA