- 1 名前:nobodyさん [2007/10/17(水) 16:01:41 ID:72/gWtt1]
- 前スレ
pc11.2ch.net/test/read.cgi/php/1181350116/
- 803 名前:733 mailto:sage [2007/11/29(木) 22:21:45 ID:???]
- 自作っていっても実質railsのパクリンだしね。
- 804 名前:nobodyさん mailto:sage [2007/11/29(木) 23:44:43 ID:???]
- 自作とかみると、また嘘言ってるよと思う。
単に俺がしょぼいんだろうなあ…。
- 805 名前:nobodyさん mailto:sage [2007/11/30(金) 08:57:17 ID:???]
- 世間一般に対するPRだな。世間と言っても、ウェブ開発の動向に興味を持ってる人の世間だけど。
楽天は安くて品揃え良くすれば、Ruby使おうがJava使おうがどうでもいいよ。と普通の世間の人は思ってる。
- 806 名前:nobodyさん [2007/11/30(金) 10:44:14 ID:bY6T+Roz]
- 楽天はショップの管理画面をなんとかしたほうがいい
- 807 名前:nobodyさん mailto:sage [2007/11/30(金) 12:19:43 ID:???]
- google=Java yahoo=php 楽天=Ruby
Rubyは良い言語だよね?
- 808 名前:nobodyさん mailto:sage [2007/11/30(金) 12:28:20 ID:???]
- 楽天はrubyと組んでも損することはないが
rubyは楽天と組むとイメージダウンが著しいな
- 809 名前:nobodyさん mailto:sage [2007/11/30(金) 13:36:29 ID:???]
- つかGoogle=Javaってw
- 810 名前:nobodyさん mailto:sage [2007/11/30(金) 14:15:18 ID:???]
- google = pythonってイメージのがつよい。
- 811 名前:nobodyさん mailto:sage [2007/11/30(金) 15:38:10 ID:???]
- あれ、Googleって、java利用し始めたんじゃなかったっけ?
- 812 名前:nobodyさん mailto:sage [2007/11/30(金) 15:40:46 ID:???]
- 前から使ってるとこには使ってるでしょ。
楽天だってjavaもphpも使ってるって言ってるし。
- 813 名前:nobodyさん mailto:sage [2007/11/30(金) 17:13:05 ID:???]
- GoogleはサーバサイドではJavaとC++が主流で、Pythonは管理ツールとか。
- 814 名前:nobodyさん mailto:sage [2007/11/30(金) 17:24:40 ID:???]
- 大きな会社が一つの言語しか使わないなんて面白いことはしないと思いますよ
- 815 名前:nobodyさん mailto:sage [2007/11/30(金) 17:40:31 ID:???]
- ほんとこのスレってすれ違いな話しで埋まるよね
PHPでフレームワーク使ってる奴はレアな存在ってことを象徴してるよな www.phppro.jp/phpconference2007/qa/2
- 816 名前:nobodyさん mailto:sage [2007/11/30(金) 18:53:18 ID:???]
- >>815
それぞれ個別のFWスレがあるんで 実際に使ってる人達は基本的にそっちでやっている このスレも前スレくらいまではもう少しまともだった 今はもう煽る奴と煽られる奴しかいない
- 817 名前:nobodyさん mailto:sage [2007/11/30(金) 19:00:15 ID:???]
- だから個別スレに分けるなって言ったのに・・・
- 818 名前:nobodyさん mailto:sage [2007/11/30(金) 20:36:44 ID:???]
- そろそろJavaを始めようと思います
PHPの難しさを100としたら Javaの難しさはどのくらいですか? ちなみにPHPは5でオブジェクト指向で書いてます
- 819 名前:nobodyさん mailto:sage [2007/11/30(金) 20:50:41 ID:???]
- 単に言語として覚えるだけならそんな苦労はないと思う。
習得時間を要するフレームワーク覚えたり、Tomcatの設定とか Javaでウェブアプリを作る上で付随することを覚えるのが辛いかもね。
- 820 名前:nobodyさん mailto:sage [2007/11/30(金) 22:21:47 ID:???]
- >>818
オブジェクト指向でかけるならそんな難しくないでしょ。 JAVAでもC++でも…。 俺、未だにオブジェクト指向を理解できてない…orz
- 821 名前:nobodyさん mailto:sage [2007/11/30(金) 22:26:35 ID:???]
- やってみればいいじゃない。
- 822 名前:nobodyさん mailto:sage [2007/11/30(金) 22:36:21 ID:???]
- >>820
やってみりゃいいよ。 俺はCからJavaに移る時に、3ヶ月目に これがクラスの力か!って閃いた。 初めて自転車に乗る時みたいなもんだ。
- 823 名前:nobodyさん mailto:sage [2007/12/01(土) 00:09:25 ID:???]
- 俺はオブジェクト指向は難しくないけど、フレームワークがダメ。
- 824 名前:nobodyさん mailto:sage [2007/12/01(土) 09:52:25 ID:???]
- >>818
今まで変数の「型」について意識していなかったら結構ひっかかるかも? それ以外はそんなに苦労しないんじゃないかな、と思う。
- 825 名前:nobodyさん [2007/12/01(土) 10:51:28 ID:sHVEWDE6]
- JAVAからはじめた俺はSETTERやGETTERがないと気持ち悪くて・・・
- 826 名前:nobodyさん mailto:sage [2007/12/01(土) 10:58:52 ID:???]
- 仕事や勉強は別として、JavaやC/C++で作りたいものがある人は尊敬するわw
- 827 名前:鍔莊 ◆SrChNIpw0A mailto:sage [2007/12/01(土) 11:20:34 ID:???]
- test
- 828 名前:nobodyさん mailto:sage [2007/12/01(土) 13:08:12 ID:???]
- >>825
俺もだ。ナンセンスと言われようとも、そこはゆずれない。
- 829 名前:nobodyさん mailto:sage [2007/12/01(土) 13:22:32 ID:???]
- Pythonはsetter,getterなんて自動で作成しますけどw
昭和のかおりのする言語乙
- 830 名前:nobodyさん mailto:sage [2007/12/01(土) 13:57:51 ID:???]
- eclipseでやってりゃ自動生成あるからいいんだけどね>Java
PHPは・・・Zend Studioおねがいしまつ。
- 831 名前:nobodyさん mailto:sage [2007/12/01(土) 15:08:06 ID:???]
- 作りゃいいじゃん。
つか、作り方どっかに転がってなかったか?
- 832 名前:nobodyさん mailto:sage [2007/12/01(土) 18:28:33 ID:???]
- 作れば・・とか言ってたらキリねーじゃんww
- 833 名前:nobodyさん mailto:sage [2007/12/01(土) 21:18:44 ID:???]
- >>829
ダウト ・・・いやほんとだったら教えて
- 834 名前:nobodyさん mailto:sage [2007/12/01(土) 21:18:47 ID:???]
- いや、だから、対応されるまでここでグチるより、作り方乗ってるサイトあるんだから見て作れるだろって話。
それこそキリないだろ。
- 835 名前:nobodyさん [2007/12/01(土) 21:43:32 ID:sHVEWDE6]
- PDTでつけてくれればいいんだけどな。SETTERとGETTERの生成。
- 836 名前:ほれ mailto:sage [2007/12/02(日) 00:38:16 ID:???]
- codezine.jp/a/article/aid/1104.aspx
- 837 名前:nobodyさん mailto:sage [2007/12/02(日) 05:30:09 ID:???]
- ちょいすれ違いかも知れませんが
皆さんphpでDIコンテナって使う機会ありますか? 便利そうだなーと思うものの実際使ったことがないので効果のほどがわかりません どうでしょうか
- 838 名前:nobodyさん mailto:sage [2007/12/02(日) 07:23:30 ID:???]
- >>837
あれはJavaのような融通の利かない言語のためにあるもの。 スクリプト言語にはまず必要ない。 config.php: <?php $class = 'Foo'; ?> main.php: <?php $obj = new $class(); ?> でたいてい間に合う。 ああAOPがあったか。AOPがやりたいなら悪くないかもしれんが、 スクリプト言語ならAOPも簡単にできそうだしなあ。やっぱいらんと思う。
- 839 名前:nobodyさん mailto:sage [2007/12/02(日) 12:15:27 ID:???]
- Mapleとかまったく無意味と言うか、センスのないフレームワークだったよな。
- 840 名前:nobodyさん mailto:sage [2007/12/02(日) 12:26:50 ID:???]
- とりあえず、復帰されたそうだから、俺は応援する。
- 841 名前:nobodyさん mailto:sage [2007/12/02(日) 12:45:42 ID:???]
- >>838
ってか、それMockとか作るたびにソース書き直してそれやってるの? DIコンテナはやっぱりテストする際に、実装しているクラスとMockを簡単に切り替える点にあるといえる インスタンスの管理だけがDIの利点ではないだろう。 もし、それだけなら単なるFactoryつくればおk AOPについても同様で、既に作成済みのクラスや機能について 処理を追加したいと考えた際にAOPが無くちゃ何も出来ない。 誰かがソースを直して待つしかないなら、AOPで書き換えるようにする。 もしかして、ソース管理は自分一人でやってないよな?
- 842 名前:nobodyさん mailto:sage [2007/12/02(日) 13:45:47 ID:???]
- >>841
>ってか、それMockとか作るたびにソース書き直してそれやってるの? そうだよ。変更箇所だけを集めたファイル(config.php)を作って、必要があれば都度書き換えてる。 DIコンテナも設定ファイルを書き換えるよね。そのXMLファイルがPHPファイルになっただけ。本質的な違いはない。 >DIコンテナはやっぱりテストする際に、実装しているクラスとMockを簡単に切り替える点にあるといえる > >インスタンスの管理だけがDIの利点ではないだろう。 >もし、それだけなら単なるFactoryつくればおk 「実装しているクラスとMockを簡単に切り替える」のは「インスタンスの管理」だと思うんだが違うのかね。 ついでにいうと>>838のコードは「実装しているクラスとMockを簡単に切り替え」ている例だと思うけど。何が不満なのかしら。 >AOPについても同様で、既に作成済みのクラスや機能について >処理を追加したいと考えた際にAOPが無くちゃ何も出来ない。 >誰かがソースを直して待つしかないなら、AOPで書き換えるようにする。 それはJavaにそういう機能がないだけだよね。クラスの定義自体を動的に行うスクリプト言語にそんなこといわれてもなあ。 >もしかして、ソース管理は自分一人でやってないよな? 人数は関係ないんじゃない?Javaではソース管理が一人だとDIコンテナやAOP使う利点がなくなるの?
- 843 名前:nobodyさん mailto:sage [2007/12/02(日) 15:18:44 ID:???]
- あーMaple復活したんだ
- 844 名前:nobodyさん mailto:sage [2007/12/02(日) 17:07:56 ID:???]
- や、Mapleというより、今のところはkunitさんが復帰しただけかな。
個人的にはHawkさんこそ復帰して欲しい・・・。
- 845 名前:nobodyさん mailto:sage [2007/12/02(日) 18:01:06 ID:???]
- Mapleひきついで「あれ…俺たいしてプログラミング好きじゃないじゃん」
って気づいちゃった人だったけ?
- 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/ ここ自体応答無しなんだけど。
|

|