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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2005/04/17(日) 16:55:57ID:iM4mgYnJ
PHP5になって本格的なOOPができるようになったので
PHPによるOOPについて語りましょう。
0002nobodyさん2005/04/17(日) 17:11:00ID:E38Tygfy
2ですよね?
0003nobodyさん2005/04/17(日) 17:27:33ID:???
PHP5のせいでPHP(・ー・)オワッタナ・・・
http://pc8.2ch.net/test/read.cgi/php/1113715166/
0004nobodyさん2005/04/17(日) 20:33:17ID:???
PHPって普通にべた書きできちゃうから
あまり本格的にOOPしてる人は少数なんだろうな。
0005nobodyさん2005/04/20(水) 07:57:44ID:???
>>4
あえてべた書きにすることもあるな。貧弱なサーバで速度を稼ぎたいときとか。
000612005/04/20(水) 12:51:40ID:???
このスレは速度を多少犠牲にしても洗練されたコーディング
(オブジェクト指向)をする為の情報交換スレにしたいと
思っております。
0007nobodyさん2005/04/20(水) 13:06:00ID:???
PHP5のnamespaceってどういう経緯で不採用になったの?
個人的にはinterfaceなんかよりも欲しい機能だったのだが。

class Net_Foo_Bar_Baz {} みたいなのとはオサラバしたいのに。
0008nobodyさん2005/04/20(水) 17:27:02ID:???
PHPでOOPするくらいなら素直にJava使えば良いんじゃないの?
0009nobodyさん2005/04/20(水) 20:32:55ID:???
Javaはそこいらのレンタルサーバーに入ってないから使い物にならん。
001072005/04/21(木) 00:57:21ID:???
>>8
いや、当然Javaも使ってますよ。
でも適材適所というか、Tomcat動かす程でもねーなっていう案件もあるわけで。
0011nobodyさん2005/04/21(木) 15:46:22ID:???
>>10
同感。規模によって PHP は Java より数倍早く作れるし。
0012nobodyさん2005/04/21(木) 22:47:58ID:???
と言えども、PHP3→PHP4→PHP5と全然違うから、毎年覚え直しで開発効率云々も無意味。
0013nobodyさん2005/04/21(木) 22:48:41ID:???
JAVAでフレームワーク使うと、めちゃめちゃ早く作れるから、PHP最高というのも昔の話だし。
0014nobodyさん2005/04/21(木) 22:52:08ID:???
PHPにフレームワークが無いとでも?
0015nobodyさん2005/04/21(木) 23:01:51ID:???
まあ、Javaの方が安定性も洗練度も上だわな。

PHP5がこなれるにはまだ時間がかかるでしょ。
でも、OOPと呼ぶには中途半端な仕様なので、
数年後にはPHP6でまたがらりと変わってやり直し、
ってことになるような悪寒。

PHP4はこれからも結構長く使われるのではないかな。
できればPHP5よりPHP4のメンテナンスに力をいれて欲しい。
0016nobodyさん2005/04/22(金) 10:19:40ID:???
>>12
「全然違う」!?
「毎年覚え直し」!?
どんな低脳君なんですか!?
0017nobodyさん2005/04/22(金) 22:52:05ID:???
>>16
なんつーか、4.3の時なんて、マイナーバージョンアップなのに
さっぱり動かなくなったりとか、ひどかったからねぇ。
その前はmb_stringの問題で回避しながら書いてたら、
いきなり使えるようになったりとかさ。
ともかく、他の言語では考えなくて良い無駄な労力が多くて疲れる。

困ってないと言うことは、それだけ何もやってないと言うことだから、
別に君はPHPに拘る必要はないと思うよ。
PHPの動き始めてからの面倒くささは、作った奴なら一度は感じることだと思うし。

セキュリティもバージョンアップも無視して、同じバージョンを使い続ける覚悟でもあれば別だろうが。
0018nobodyさん2005/04/23(土) 19:01:55ID:???
>>15
どこら辺が中途半端なのか詳しく教えて。
0019nobodyさん2005/04/23(土) 19:05:29ID:???
数値型・文字列型などの基本型がオブジェクトになっていない
0020nobodyさん2005/04/23(土) 22:23:31ID:???
プリティーでキュアキュア
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の三大機能も知らずにこの板に顔出せるな?
少しは勉強しろよタコ。
■ このスレッドは過去ログ倉庫に格納されています