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

PHPでオブジェクト指向プログラミング

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/04/17(日) 16:55:57ID:iM4mgYnJ
PHP5になって本格的なOOPができるようになったので
PHPによるOOPについて語りましょう。
0021nobodyさん2005/04/24(日) 12:24:15ID:???
>>19
それって致命的か?
そもそもPHPって型とか意識しなくていいのが売りでしょ?
0022nobodyさん2005/04/24(日) 12:26:22ID:???
だから反対に困ることもある

らしいよ。理由は知らないけど
0023nobodyさん2005/04/25(月) 09:56:20ID:???
問題を抱える人は
その人自身に問題があることが多い
0024nobodyさん2005/04/25(月) 17:39:07ID:???
型フリーなお気楽路線にしたいのか厳密かつ大規模なプロジェクトで信頼性得られるほどお固いOOPLにしたいのかよくわからんよな
どっちもイケるのを目指してるんだったら考え直すか二分化するかした方がいいかもねぇ
0025nobodyさん2005/04/25(月) 19:44:01ID:???
その中間じゃない?

Java みたいに面倒ではなく、
デザパタができる程度には OO 化で丁度いいと思うよ。
0026nobodyさん2005/04/29(金) 18:02:00ID:BB1WOA5x
PHP-light とPHP-Fullって2バージョン作るべきだと思う。
0027nobodyさん2005/04/29(金) 23:24:02ID:???
PHP-light → Ruby
PHP-Full → Java
0028nobodyさん2005/04/30(土) 00:14:21ID:???
PHP-standard → PHP5
0029nobodyさん2005/04/30(土) 13:25:16ID:???
リリース前から言われてたことだけど、やっぱJava意識しすぎだろと思う。
PHP5専用のOSSプロジェクトも幾つか見かけるようになってきたけど、
やたらと「Javaの〜の移植」ってのを目にするし。

PHP5になって、OO機能が充実して、出来るようになったことが
「Javaから移植しやすくなりましたよ」ってだけじゃ悲しすぎるだろ。
それは言語の存在意義を否定することじゃないのか。
0030nobodyさん2005/04/30(土) 13:44:00ID:???
じゃあC#はどうなるんだ
0031nobodyさん2005/04/30(土) 13:55:49ID:???
C#の存在意義ってまさに「Java潰し」だったから、それでいいんジャマイカ

PHPの存在意義って... なんだろう?
0032nobodyさん2005/04/30(土) 17:41:55ID:???
Perl潰し
0033nobodyさん2005/04/30(土) 23:37:33ID:???
あっなるほど
0034nobodyさん2005/05/01(日) 00:33:45ID:???
逆にやられるわけだが。
0035nobodyさん2005/05/01(日) 00:47:43ID:???
うほっ、いいPHP…
0036nobodyさん2005/05/01(日) 14:49:03ID:???
Java でやるの面倒な案件が PHP なら簡単に書けるから
Java から移行している、ってのもあるんだと思うよ。
0037nobodyさん2005/05/08(日) 13:21:25ID:???
>>36
あるか?
PHPで作ったけど問題出てきたシステムを、JAVAに焼き直したことはあったが…
0038nobodyさん2005/05/08(日) 13:26:44ID:???
>>37
それはPHPの問題なのか?
単順に作りが悪いだけだったんじゃないのか?

PHPでは問題が起きて、Javaじゃ問題が無いって、例えばどんな問題なの?
0039nobodyさん2005/05/08(日) 18:24:48ID:???
どう考えてもメンテナンス性のような気がするが。
0040nobodyさん2005/05/08(日) 19:41:10ID:???
>>39
それは、メンテナンスし難く作ったとかPHPに熟知してる人間が少ないとか
そういった問題じゃないの?
0041nobodyさん2005/05/08(日) 23:26:03ID:???
PHP の大きな利点と言われる「簡単に書けること」を生かすと
メンテナンス性が悪くなるように感じる

一方 PHP でもメンテナンス性の高い書き方はできるのだが
そうすると上述の利点が、全部ではないにしろ、相当に失われるように思える

もちろん両方を少しずつ犠牲にして中間を取ることもできるのだが
それを中庸と見るか中途半端と見るかはまた意見のわかれるところ

でまあ、あくまで私見だが、pear とかのまじめな開発者は別として
これまで世の中で「PHP書けます」と自称していた人の大半は
メンテナンス性を犠牲にして簡単さを重視していたような気がするよ
それはPHP自身ではなくそれを使う人間の側の問題なんだろうとは思うけど
0042nobodyさん2005/05/09(月) 00:46:41ID:???
>>41
概ね同意かな。

しかし「簡単に書ける=メンテナンス性が悪くなる」は
必ずしも成り立たないのだから、簡単に書けることがウリのPHPには
「簡単に書けて、かつメンテナンス性も(あまり)悪くならない」方向を追求して欲しかった。
が、実際にPHP5で強化されたのは、専ら
「メンテナンス性は向上するが、簡単ではない(かも知れない)」類の機能だったわけで、
結局簡単に書く=メンテナンス性悪の図式はそのまんまなんだよな。

0043nobodyさん2005/05/12(木) 17:19:20ID:???
JavaみたいにガチガチのOOPを強いる言語もいいけど、
PHP5のように簡単に書けるけど、Java風のしっかりとしたOOPも
できる見たいな方が好みかな。
0044nobodyさん2005/05/12(木) 19:07:47ID:???
そして書く人によって品質に差が出てしまって後で困る。
0045nobodyさん2005/05/13(金) 01:52:42ID:vNR8miqZ
自分は今携帯向けサイトのJAVA→PHPの移行の仕事してる。
なんかJAVAでパフォーマンスが悪すぎたのでPHPに切り替えることになったらしい。
JAVAが悪いというよりは、作りが悪いだけだと思いますが。

コーディング規約や使用するライブラリ類を規定して
なおかつソースレビューとかすればPHPでも品質はそれほどばらつかないと思うよ。
それからメンテナンスし易いような作りにしても、全然難しくならないので、
簡単に書けるというPHPの利点は全く失われないと思う。
0046nobodyさん2005/05/13(金) 01:55:25ID:???
>>44
仕事で使うならの話だけど
そこら辺は社内のコーディング規約でどうにでも
なると思うけどね。
0047nobodyさん2005/05/13(金) 05:38:47ID:???
>>44
Javaはその差が少ないって一般的に言われてるけど、
実際は全くそうじゃないんだよな…
0048nobodyさん2005/05/13(金) 11:06:25ID:???
>>45
JavaってPHPよりパフォーマンス悪いの?
0049nobodyさん2005/05/13(金) 11:13:22ID:???
>>48
Javaはパフォーマンスという点からみれば、最も悪いかと。
0050nobodyさん2005/05/13(金) 11:16:11ID:???
そういや、JavaでWebアプリ作る時、鯖に結構メモリ積まないと洒落にならないよね・・・
あれ、どうにかできないかなぁ。

せっかく、OSはLinuxとかなのに、Javaである程度のパフォーマンスを得る為に、
メモリを1G〜2Gも積むはめになる。

同様の機能のWebアプリを自宅でPHPで作ったら、メモリ256MBでも
Javaで作ったやつよりも快適だし。
0051nobodyさん2005/05/13(金) 12:12:48ID:wwvtr3ys
自宅かよ…
0052nobodyさん2005/05/13(金) 12:16:22ID:???
>>51
自宅に開発環境も無いの?
釣りかなw
0053nobodyさん2005/05/13(金) 12:50:07ID:iSYcHFAr
http://61-23-225-96.rev.home.ne.jp/


ぷぇぷwぷぷはぷぷwぷwっうぇっうぇぷぷぷぷっうぇ
ぷwぷぷwぷぷwぷwぷwぷぇぷwぷみぷぷwぷw
ぷぇぷwぷぷぷぷぷはぷぷwぷぷぇぷwぷおkぷぷぷ
0054nobodyさん2005/05/13(金) 15:44:25ID:???
PHPの方が遅くね?つーか最低でもコンパイルする分は速くなるんじゃね?
正規表現とかはPHPの方が早かったけど

まあ、スレ違い
0055nobodyさん2005/05/13(金) 21:10:43ID:???
満足できればどちらでもいいのです

>>53 新手の山田?
0056nobodyさん2005/05/13(金) 21:27:11ID:???
速度なんてほとんどどうでもいい
速度気にする奴に限ってプロファイリングすらやってないし
0057nobodyさん2005/05/14(土) 00:33:48ID:???
>>56
プロファイリング?
何言ってんの?
0058nobodyさん2005/05/14(土) 01:16:33ID:???
>>54
普通にやれば、Javaの方が圧倒的に速いよ。
多分>>45のケースは彼自信の言うと通り作り方か実行環境が悪いだけだと思う。

それにしてもあれだな。PHP5はAmazonECSの為に生まれたようなもんだな。
SimpleXMLの高速XML処理にSQLiteの組み合わせ。
アソシエイトの収入がとうとうお小遣いのレベルを突破しましたよ
0059nobodyさん2005/05/14(土) 01:46:19ID:vDWMPOXA
>>54
コンパイルするからJavaの方が速いというのは少し違うと思う。
PHPは単純なインタプリタ言語ではなくて、コンパイルされてから実行されるよ。
ただ毎回コンパイルされるのでそのままでは確かに遅い。
でも、通常はそのままで運用する事はなくて、
アクセラレータ等を使ってコンパイル結果をキャッシュして高速化を図るよね。

言語自体の速度はいろいろなツール等でカバーできたりするので、
そこは実はどうでもいい気がする(そこまで差がつかない)。
それよりサーバ構成や負荷分散方法などの実行環境次第でパフォーマンスが決まるんじゃないかな。

Javaだから速いなんて一概に言えないはず。
0060nobodyさん2005/05/14(土) 02:00:47ID:ViMLg4Yp
http://Y043129.ppp.dion.ne.jp/
おkwwwうはっwwwwwwwwwwwwwwwwww
wwwwwwwwwwwwwwwwwwうぇwww
おkwwwwwwwwwおkwwww
www
うはっwww
0061nobodyさん2005/05/14(土) 02:19:14ID:UV4uYPzc
http://p2933db.tokynt01.ap.so-net.ne.jp/

wwwwwwwwwwwwうはっwwwうはっwww

wwwwwwwwwwwwおkwwwっうぇうぇwww
っうぇっうぇwwwwwwwwwwwwwwwwww
0062nobodyさん2005/05/14(土) 02:21:38ID:???
>>59
実際計った?
http://www.thinkit.co.jp/free/compare/2/2/1.html
ここ見て俺もやってみたけど、複雑な計算が絡むほど差が激しくなる。
もちろんJavaだからなんでも速いとは言わないが、やりたいことが増えるほど
PHPは不利。
0063592005/05/14(土) 03:10:28ID:???
>>62
実際に全く同じシステムをPHPとJavaで構成して測った事はない。
客の予算とか要件次第で採用する言語は違ってくるから。
ただ、JavaとPHPで速度差が実用に耐えられないほど開くような
複雑な計算をさせるような案件をやっていないだけかもしれない。

自分が今やってる案件は、
イントラ内の業務システムや、
携帯/PCサイトの更新用の管理ツール、実際にユーザが閲覧する画面等。
こういうのは、
パラメータを受け取って、入力チェックをして、DBに対して登録・更新などを行うとか、
DBに登録されてるデータを必要な件数だけ取得して表示するとか複雑な計算は必要としないものが多い。

こういう処理でJavaとPHPでそこまで差が開くのかな。
測ったらいいじゃんと言われたらそれまでだけど、そこまでの余裕はないので勘弁して下さい。
適当な計算させたり、DBに接続繰り返すだけの単純なテストして
それで○○が速いですねっていうのはひどすぎると思うし。
できれば実用的なシステムに対して負荷テストを行ってどの程度のアクセス数に
耐えられるのか比較するほうがいいと思う。

>もちろんJavaだからなんでも速いとは言わないが、やりたいことが増えるほど
>PHPは不利。

という点は同意。
PHPがJavaより速いと主張する気はなくて、
PHPも要件次第ではJavaとさほど変わらない事もあるんじゃないかと。
そういう場合にはやっぱりサーバの負荷分散とかインフラ周りが重要だと思う。

なんかいろいろ言ったけど、書いてるうちに
どっちが速かろうが客が満足すればそれでOK
という気がしてきた。
0064nobodyさん2005/05/14(土) 03:25:51ID:???
Javaが圧倒的に速いとか行ってる>>58見たいな人は
正規表現すら知らないJava厨なんだろうな。
0065nobodyさん2005/05/14(土) 03:27:15ID:???
>>63
>パラメータを受け取って、入力チェックをして、DBに対して登録・更新などを行うとか、
>DBに登録されてるデータを必要な件数だけ取得して表示するとか複雑な計算は必要としないものが多い。
典型的なWEBアプリって感じだな。
こういうもんなら、実際差が出たとしても微々たるもんだろうし。
ただ、こういう処理に「オブジェクト指向プログラミング」と言えるほどのオブジェクト指向が必要かは微妙だな…
phpdocumentorとかでソースの管理はしやすいだろうけど。
006658=622005/05/14(土) 03:29:14ID:???
>>64
おいおい勘弁してくれよw
正規表現すらしらないでどうやってJAVAやれっていうんだ(ぷ
0067nobodyさん2005/05/14(土) 03:32:34ID:???
ひょっとしたらJavaに正規表現がないと思ってるのかも…
0068592005/05/14(土) 04:20:58ID:???
>>65

>典型的なWEBアプリって感じだな。
>こういうもんなら、実際差が出たとしても微々たるもんだろうし。
PHPの仕事ってたいていこういう典型的なWEBアプリが多いんじゃないかな。
こういう場合には、言語よりもその他の要因でパフォーマンスが決まると思う。

>ただ、こういう処理に「オブジェクト指向プログラミング」と言えるほどのオブジェクト指向が必要かは微妙だな…
確かに。
適材適所というか、PHPに関しては、何でもガチガチのOOPで組めばいいというものではないと思う。
0069nobodyさん2005/05/14(土) 13:08:26ID:???
あんたらが使えるか使えないか知ったこっちゃねーが
基本的にJava厨は正規表現使えない奴が多い。
0070nobodyさん2005/05/14(土) 13:10:01ID:???
全てCで組む
鯖を強化
これで解決
PHPをコンパイルするソフトってあるんだね。


40マソだけど
0071nobodyさん2005/05/14(土) 13:22:27ID:???
正規表現を上手く使いこなすのは
Perl厨≧Ruby/Python厨≧php厨>>>Java5厨≧C/C++厨≧Java1.4厨>VB厨
0072nobodyさん2005/05/14(土) 13:28:36ID:???
正規表現なんて基礎じゃないか
でも逆にPerlとかPHP使いはHTTPをよく知らなかったりするんだよな
0073nobodyさん2005/05/14(土) 13:38:18ID:???
PHPAの5版って出るのかな?
0074nobodyさん2005/05/14(土) 17:18:57ID:???
>>69
その場にあったパターンに合致するようなライブラリを昔は作ってたな。
C言語の時もそうだったけど。
そっちのほうがパフォーマンスが良かった。

パフォーマンスを犠牲にしてまで、標準のフルスペックの正規表現ルーチンを
使わざるを得ないスクリプト言語って可哀相だな。
0075nobodyさん2005/05/14(土) 17:36:15ID:???
>>72
その基礎が分かってない奴多いんだよJava厨には。

>>74
なんか時代に取り残されたC厨って感じだな。
今日日パフォーマンス重視のために正規表現使わず
独自ライブラリ作るアホはいねーよ。
0076nobodyさん2005/05/14(土) 17:59:50ID:???
いや実際正規表現は遅いらしいじゃん
使うまでもない時も多いとオモフ
0077nobodyさん2005/05/14(土) 18:45:32ID:???
>>75
パフォーマンス重視するのなら、作り込むのは普通だな。

つーか、だからクリティカルなシステムでは、JAVAとかCとかで作るんだろ。
0078nobodyさん2005/05/14(土) 19:18:18ID:???
本当にクリティカルな部分はJavaなんか使いたくないなぁ
0079nobodyさん2005/05/14(土) 19:34:28ID:???
>>78
今流通しているATMの殆どがJAVAなわけだが、お前は使わないのか?
0080nobodyさん2005/05/14(土) 22:16:50ID:???
aspxマンセー
0081nobodyさん2005/05/15(日) 06:16:45ID:???
WEBアプリの遅い速いなんて、DBがネックになったり、WEBサーバをスペックアップするとか、いっそ増やすとかで解決できることがおおいんじゃない。
PHPでもJavaでもどっちでもいいと思うけど。
0082nobodyさん2005/05/15(日) 17:22:28ID:???
PHP5で書かれてるオーぷんソースなソフツってなんかある?
0083nobodyさん2005/05/15(日) 18:22:15ID:???
PHP5で書かれてるかどうかは知らんが「PHP5動作確認済」とうたってるのはいくつかある
0084nobodyさん2005/05/15(日) 20:09:35ID:???
俺のスクリプト
1日20アクセスの無名な配布サイト…
0085nobodyさん2005/05/15(日) 21:25:29ID:???
こりゃPHP5オワッタナって言われても仕方ナイナ・・・
0086nobodyさん2005/05/16(月) 00:07:37ID:???
PHP5.10キタ━━━━━━━━━━━━━━━(゚∀゚)━━━━━━━━━━━━━━━!!!!
0087nobodyさん2005/05/16(月) 00:32:55ID:???
またチェックしなきゃならんな…
0088nobodyさん2005/05/16(月) 04:30:39ID:???
>>86
キター が異様に長い
0089nobodyさん2005/05/16(月) 06:20:26ID:???
Snapshotsにあることはあるが
0090nobodyさん2005/05/31(火) 16:46:56ID:???
('A`)間違えました
VisualJ#始めました・・・
0091nobodyさん2005/06/02(木) 19:31:18ID:em3h6hbO
PHP4でポリモーフィズムってどうやるの?
0092nobodyさん2005/06/03(金) 00:00:08ID:???
型指定いらないんだから、同じメソッド持ってるクラス作って、
適宜インスタンス化して適当に呼び出せばいいんじゃないか。
0093nobodyさん2005/06/03(金) 00:00:13ID:???
同名のメソッド実装したらいいだけやん
0094nobodyさん2005/06/03(金) 00:02:19ID:???
「ポリモーフィズム」って言いたいだけと(ry
0095nobodyさん2005/06/03(金) 06:16:29ID:???
多分インターフェイスがないから
明示的にポリモーフィズム出来ないじゃんと言いたかったんだろうけど
インターフェイスはポリモーフィズムの本質ではないからねぇ
0096nobodyさん2005/06/05(日) 18:29:15ID:???
>>94
じゃあなんて言えばいい多態性か?
OOPの3大機能の一つだぞ?
お前はオブジェクト指向知らんのか?
0097nobodyさん2005/06/05(日) 20:49:10ID:???
ハ?
0098nobodyさん2005/06/05(日) 23:26:51ID:???
………
0099nobodyさん2005/06/06(月) 16:16:20ID:wLHryutA
PHP5でクラス作って云々やるぐらいならJAVAやるな。ストラッツとサーブレット
技術者不足気味らしいからPHPは開発、楽だったけどJAVAに方向転換するべ。
糞安いPHPの案件やるぐらいならJAVAだ。
0100nobodyさん2005/06/06(月) 17:52:58ID:???
OOPを精一杯勘違いしてる香具師が多いようだが勉強する気がないんか
0101nobodyさん2005/06/06(月) 21:15:51ID:???
>>97
ハ?じゃねよーバーカ。
お前は多態性すら知らんのか?
ニワトリ並みの知能指数ですなw

>>100
テメーもOOPの三大機能も知らずにこの板に顔出せるな?
少しは勉強しろよタコ。
0102nobodyさん2005/06/06(月) 21:27:56ID:???
クマーな気持ちでマジレスすると

オブジェクト指向を理解しているのなら、
PHP4でポリモーフィズムをどうやるのかって
聞かないよねー。
0103nobodyさん2005/06/06(月) 23:37:11ID:???
三大機能三大機能ってw
べんきょうしたばっかりなのかい?
(*´Д`)キャワイイネ
0104nobodyさん2005/06/06(月) 23:50:49ID:???
何年後かに思い出して恥ずかしくなれるような
まともな技術者になれたらいいネ PUPUPU
0105nobodyさん2005/06/07(火) 00:57:31ID:???
俺、JAVAプログラマだが、三大機能ってなんだ?
言語なんて、中の考え方や実現方法が違うだけで、機能はどれも同じだと思うが。
それとも、従来の言語思想と異なる3つの点って意味かな?
0106nobodyさん2005/06/07(火) 01:07:30ID:???
JAVA厨は三大機能も知らないで仕事してるのかよwww
0107nobodyさん2005/06/07(火) 01:23:14ID:???
>>103-104
で?三大機能の何が間違ってるのか言ってみろ。
ただ煽りたいだけだろ?馬鹿かお前ら?
0108nobodyさん2005/06/07(火) 02:01:14ID:???
・OOを理解していない奴を見下したくなる機能
・OOを実装していない言語が見えなくなる機能
・PHP4以下が無かったことになる機能

これぞ三大機能
0109nobodyさん2005/06/07(火) 02:22:58ID:???
>>107

君が本当にオブジェクト指向を理解しているなら、>>91という質問は有り得ないよ。
それに>>92-93で答えもらってるのにそれはスルーしてしまっているのはおかしくないか?
0110nobodyさん2005/06/07(火) 02:41:41ID:???
http://www.google.co.jp/search?hl=ja&c2coff=1&q=%22%E4%B8%89%E5%A4%A7%E6%A9%9F%E8%83%BD%22%E3%80%80OOP&lr=

"三大機能" OOPに該当するページが見つかりませんでした。


m9(^Д^)プギャー
0111nobodyさん2005/06/07(火) 04:24:59ID:???
>>おばかちゃん
チミの思っているポリモーフィズムってどんなのだい?
コーディングレベルで説明してみ?
0112nobodyさん2005/06/07(火) 08:12:19ID:???
結局、言葉を知っているだけなんだろうな(ぷ
>>94でイタイとこつかれてファビョってるw
0113nobodyさん2005/06/07(火) 09:56:54ID:???
Smartyスレで突っ込まれて逆切れしている奴と同一っぽいな。
0114nobodyさん2005/06/07(火) 10:20:24ID:???
>>107
間違ってるかどうかではなく、三大要素を知ってるか知らないかなんてレベル低過(ry
どうも>>105みたいなのもいるらしいが・・・
マジレスするとPHPはJAVA同様に、メソッドのオーバーライドはデフォルトで動的束縛(って>>107にわかるだろうか?)。
だからポリモーフィズムを明示しなくても勝手にポリモーフィズムになる。
まさに>>93の通り同じ名前のメソッド実装すればいいだけ。
0115nobodyさん2005/06/07(火) 10:54:43ID:???
>>114
そんなネタに釣られクマー。
0116nobodyさん2005/06/07(火) 14:13:04ID:???
まあファビョたんは中学生か高校生くらいだろう
教科書的な知識のひけらかしが
何か懐かしいw
0117nobodyさん2005/06/07(火) 15:39:34ID:???
ひけらかしとすら言えるほどの(ry
0118nobodyさん2005/06/07(火) 20:25:11ID:???
>>111-113 >>116
朝っぱらから昼まで何やってんだお前ら?
お前らみたいな雑魚ニートが社会人様に意見すんな。
働いてもいない奴に説得力なんてまったくねーよ。
しかもポリモーフィズムすらも知らんくせにw
なんでお前らみたいな雑魚がこの板にいるのよ?
場違いだ場違いw
とっととお母さんに小遣いでもせびりにいけよ。な?
0119nobodyさん2005/06/07(火) 21:18:59ID:???
>>114
一番、知識を言いたいだけの人だな。
0120nobodyさん2005/06/07(火) 21:49:01ID:???
>>118
あららw
中学生が大人のふりしてもおじさんにはまるわかりだゾ
大人見くびるなよ、坊や。
0121nobodyさん2005/06/07(火) 22:41:22ID:11Ag8MXs
しこしこしてろよ
■ このスレッドは過去ログ倉庫に格納されています