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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2005/04/17(日) 16:55:57ID:iM4mgYnJ
PHP5になって本格的なOOPができるようになったので
PHPによるOOPについて語りましょう。
0883nobodyさん2005/09/19(月) 23:24:16ID:???
Perlは多重継承できますけどPHPはできないんですか?
しょっぼ!
0884nobodyさん2005/09/19(月) 23:32:37ID:???
アホが来たw
0885nobodyさん2005/09/19(月) 23:34:52ID:???
ごくろうさま
0886nobodyさん2005/09/20(火) 01:28:47ID:???
>>879
「多重継承できないからinterface必要」論に逆戻りかよw
まったく、多重継承にこだわる奴から、Javaでのinterfaceの利点だけつらつら並べる奴から、てめえがinterface使わないからって不要だとか言う奴から。
お前ら適材適所という言葉を知らんのか。
オレは>>870に同意。

PHPはアドホックをひたすら重視した使い捨て言語から始まり、使えそうなものはガンガン取り込み、終いにはOO導入して徐々に規模の大きなWebアプリにも対応できるようになってきた。
良く言えば柔軟性が増してきたし、悪く言えば統一性・方向性に欠けるため扱い辛い。

良くも悪くも多くの場面でPHPは使われてんだから、「必要」か「不要」かの極論をあえて押し付けようとすれば、それはもはや説得ではなくただの言いくるめだろ。
使うべき時に使えばいいし、いらないなら使わなければいい。

必要派の奴らだって世のPHPのごく平均的な規模(測るのは容易ではないかもしれないが)にinterfaceがどうしても必要とは言わないだろうし、不要派の奴らだってinterfaceがあることが害になるとは言わないだろ。

とりあえずちょっとはお互い歩み寄れ。
長文・チラシ裏失礼〜 ノシ
0887nobodyさん2005/09/20(火) 02:08:35ID:???
結論は>>870だとしても
Javaでのinterfaceの利点が動的型付け言語のPHPでも全て通用するのか?
をきちんと考えるのはPHPにおけるinterfaceの使い道を考える上でも重要でR。
0888nobodyさん2005/09/20(火) 02:59:39ID:???
>>879
Xいらないじゃん
0889nobodyさん2005/09/20(火) 03:54:32ID:???
PHPにインタフェースが必要かどうかはわかんないけど、
このスレの参加者の中に、に適切なインタフェースが欠けている人が
いることだけは間違いないな。










ヨタ話、スマソ。
0890nobodyさん2005/09/20(火) 17:09:22ID:???
>>888
とりあえずおまえはデザインパターンの勉強を(ry
で、ついでにマーカーインターフェースについてぐぐれ
0891nobodyさん2005/09/20(火) 17:57:00ID:???
>>890
Xをマーカーにするなら>>861の通りでしょ
>こんな感じになると嫌でもinterfaceを使わざるをえなくなる。
これだってコメントアノテーションで代替できないこともない

型を縛りたいときはタイプヒンティング、is_a()が必須
interface不要とは言わない(むしろ歓迎)が、用法・用量・用途を良く考えないと
不要なインターフェース、不要な継承を量産することになるぞ
0892nobodyさん2005/09/20(火) 19:59:52ID:???
組み込みオブジェクト指向への進化を期待していたPHP6だが
そういう変化はないみたいだな(*゚д゚) 、ペッ
0893nobodyさん2005/09/20(火) 20:09:48ID:???
PHP6で新しいことってUnicodeぐらいでしょ?
Javaで当たり前のことをようやく真似するだけ。
0894nobodyさん2005/09/20(火) 20:33:07ID:???
ネームスペースの機能が出来るのは大きいんじゃないの。
0895nobodyさん2005/09/20(火) 20:45:05ID:???
やっぱJavaの追随だな。
0896nobodyさん2005/09/20(火) 21:08:22ID:???
Unicodとネームスペースって
バージョン変えるほどかとも思うけどなぁ
ちょっと期待しすぎたか
0897nobodyさん2005/09/20(火) 21:26:57ID:???
どうしてUnicodeサポートやネームスペースがJavaの追従になるのやら
次のPHPに求める動的言語っぽい機能ってなんだ?動的なメソッド追加とかクロージャとか?
そうすると今度はRubyの猿真似とか言われそうだけどな

他の言語のいいとこ取りでいいと思うんだけどな
C#やDelphiのプロパティとか言語仕様で欲しい
0898nobodyさん2005/09/20(火) 21:27:17ID:???
相変わらず何をしたいのかが見えないよな。
Javaの真似するだけならもうある意味完成だろ。
動的言語であるなどの手軽さを活かしていろいろ考えてほしいのに
PHPの中の人たちは誰もそれをしない。
0899nobodyさん2005/09/20(火) 21:56:26ID:???
Javaに似せていくっていうのは、中小規模Webプログラミングというニッチな分野で
積極的にシェアをとっていくための立派なマーケティング戦略なんじゃないか?
と思ったがやっぱ天然かも知れん。
0900nobodyさん2005/09/20(火) 22:02:42ID:???

   ( ´A` ;)       * ('A`)>
 /(   )\   →   <( )  *
   | |          | >

   before         after(でもモテない)
0901nobodyさん2005/09/20(火) 22:56:16ID:???
ユニコードとネームスペースは、Javaとは関係ないだろ。
というか、ネームスペースはPHP3あたりですでに実装して欲しかった機能だよ。
0902nobodyさん2005/09/21(水) 14:21:59ID:???
>>871
こんなところで、日本語でべらべら語って、どんな結論を出しても
PHP6やPHP7に盛り込まれる可能性はゼロだよ。

議論ゴッコをして遊んでいるだけ。
0903nobodyさん2005/09/21(水) 14:24:53ID:???
>>893
Unicode採用をJavaのまねというのは、さすがにズレていないか?
0904nobodyさん2005/09/21(水) 16:17:21ID:???
namespaceはオブジェクト指向関係なしに名前汚染を予防できるからぜひ欲しい。
いっぺんPHP5が出る直前でなんか問題があってZeevが却下したんだっけ。
で、今のHEADへのパッチはそれに対するアプローチが施されているとか。

MLヲチしてるとZendの人たちはPHPらしさを完全に見失ってる感じがするね。
Python 3.0(これも基本の文字列型がUnicode対応になる)が面白そうな感じ。
0905nobodyさん2005/09/21(水) 17:32:02ID:???
Zendの人たちはビジネスありき(エンタープライズ狙い)で考えちゃうから、
何をやるにしてもJavaやSun、IBMの後追いなんだよな。
0906nobodyさん2005/09/21(水) 20:31:51ID:???
PHP6はVMにParrotを採用するらしいよ。
0907nobodyさん2005/09/22(木) 05:34:04ID:???
>>905
まぁ、Perlみたいに開発資金不足になっちゃうよりはいいと思うよ。
0908nobodyさん2005/09/26(月) 01:24:35ID:???
>>906
Parrotか。
Perl6のように大変化される...

なんてことはないか。
# 誰かhaskelでphp6書いて
0909nobodyさん2005/09/29(木) 05:06:49ID:???
phpは元々の作者がハードゲイだから嫌い。
0910nobodyさん2005/09/29(木) 06:47:05ID:???
>>909
マジ?
0911nobodyさん2005/09/30(金) 22:38:35ID:???
プロパティーへのアクセスって必ずゲッター書いてる?
直接いじりとゲッターいじり混ぜて書いてたら
だんだん分かりにくくなってきたorz
0912nobodyさん2005/09/30(金) 22:41:03ID:???
>>910
有名な話だよ
0913nobodyさん2005/10/01(土) 00:13:18ID:???
>>912
嘘付けwwwwww
0914nobodyさん2005/10/01(土) 00:29:07ID:???
ラスマスラードフ ゲイ
でぐぐっても0件だぞ
適当なこと言ってんじゃねーぞチンカス
0915nobodyさん2005/10/01(土) 01:23:40ID:???
姓名は区切れよ池沼
0916nobodyさん2005/10/01(土) 03:35:40ID:???
区切ったところで変わらねーんだよゴミ虫が
0917nobodyさん2005/10/01(土) 10:48:50ID:???
>>911
俺の場合直接プロパティをいじるなんてことはほとんどなくて
セッター・ゲッター作ってる。
逆に直接プロパティをいじらせたほうがいい時ってどんな時?
09189112005/10/01(土) 16:12:26ID:???
>>917
ただ値を入れる/返すだけのセッター/ゲッターは
書くのが無駄のような気がして、
直接いじりで書いてた。
利点は、書く時に楽、それだけかな。
ただ最近は、書く時の楽さと保守性はトレードオフの関係にあると
身をもって理解してきたよ。
あー、あと、「パフォーマンスがもったいない気がする症候群」
これが害悪だったかもしれない。
よく考えたら、アクセサメソッドによるパフォーマンス低下なんて
本質じゃないよなぁ。
カリカリチューンの最後の最後にいじるべきようなところで、
そこまで行くことは現実的じゃないかも…。
0919nobodyさん2005/10/01(土) 22:50:19ID:???
まあ、その辺の面倒さを解決したのが
C#なわけだが。
0920nobodyさん2005/10/02(日) 09:31:05ID:???
まあ、C#のその機能の元ネタが
Delphiなわけだが。
0921nobodyさん2005/10/02(日) 17:35:06ID:???
Groovyのアクセサ自動生成もよさげじゃないかな
__get()と__set()がprivateなプロパティをオーバーロードしてくれればPHPでもその辺自前で書けるんだけど
5.1から全てのプロパティをオーバーロードしてくれるようになるんだっけ?
0922nobodyさん2005/10/09(日) 16:26:37ID:???
燃料期待上げ
0923nobodyさん2005/10/12(水) 23:20:16ID:ghyx5VqD
「J2EEパターン」のDAOのサンプル見ると、
findメソッドなんかでは全カラム読んでるんだよね。
一カラム欲しいだけのためだけに全カラム読むのはもったいないし、
欲しいカラムを指定する方がいいんでないかと思うんだけど
どうなんだろう。
全カラム読むのが定石なのかな?
一カラムだけ必要になることも、
そんなに頻繁にはないっちゃ、ないけど。
みんなどうしてる?
0924nobodyさん2005/10/13(木) 01:41:49ID:???
>>932
ちょっと違うかもしれないが、この辺読んでみるとか。
http://capsctrl.que.jp/kdmsnr/wiki/bliki/?DomainLogicAndSQL
0925nobodyさん2005/10/13(木) 02:10:05ID:???
classの前にpublic等が書かれてるのは
何を意味してるの?
こういうの
↓
public class hoge{
}
0926nobodyさん2005/10/13(木) 02:26:37ID:???
ネタ乙
0927nobodyさん2005/10/13(木) 03:00:03ID:???
ネタとは?
0928nobodyさん2005/10/13(木) 10:14:22ID:???
漫才や落語で使われる話の一区切り。物事の題材。仕掛け。「タネ」の倒語。
0929nobodyさん2005/10/13(木) 12:44:13ID:???
>>925
付けてもつけなくても変わらない。
他言語使っている人には理解できるコメントのようなもの。
0930nobodyさん2005/10/13(木) 13:41:06ID:???
付いててもなくても同じなのはお前のちんこだけだ
0931nobodyさん2005/10/13(木) 14:41:44ID:???
他言語ではどういう意味があるの?
09329232005/10/13(木) 16:16:27ID:???
>>924
ありがとう
難しいけど勉強になった
0933nobodyさん2005/10/13(木) 16:19:11ID:???
>>931
少しは調べてみてから聞いてるの?
0934nobodyさん2005/10/13(木) 17:34:41ID:???
http://wisdom.sakura.ne.jp/programming/java/java32.html
見つけた
つまり「パッケージ」がないPHPでは意味がないってことだね。
0935nobodyさん2005/10/13(木) 17:47:57ID:???
いや。「意味がない」というのは正しくないな
0936nobodyさん2005/10/13(木) 18:29:30ID:???
ていうかPHPでクラスにアクセス権つけれたっけ?
0937nobodyさん2005/10/13(木) 18:34:37ID:???
メソッドにはできるけどクラスにはできないね。
クラスにできるのは abstract/final で継承の強制/可否を指定することだけ。
0938nobodyさん2005/10/13(木) 19:51:28ID:???
本当だ…
0939nobodyさん2005/10/13(木) 20:36:51ID:???
無駄に長いネタだったな
0940nobodyさん2005/10/13(木) 23:45:51ID:Z/1bajsF
誰かPHPで擬似コネクションプーリングを実現する
Connectionクラスを作ってもらえませんか?
0941nobodyさん2005/10/14(金) 14:36:34ID:???
>>940
嫌です。
SQLrelayじゃダメなの?
0942nobodyさん2005/10/14(金) 17:22:40ID:???
疑似コネクションプーリングってどんなのだ?
アクセラレータ入れて共有オブジェクト作るとか?
0943nobodyさん2005/10/14(金) 23:16:31ID:???
MySQLなら相当コネクションのコスト低いらしいじゃん
コネクションプーリングっているんかな?
0944nobodyさん2005/10/27(木) 17:37:47ID:???
このスレももうすぐ1000か。色々なことがあったな。
初めは良スレになることを期待していたが、結局低レベルな煽り合いばかりで何も実らなかったか。
そういう漏れも、内容のないレスにムキになって反論したこともあった。
むしゃくしゃしてやった。今は反省している。

おい、おまいら。次スレとか立てるなよ。
結果は目に見えているからな。
というわけで、最後に言わせてくれ。

・・・ぬるぽ
0945nobodyさん2005/10/27(木) 18:39:46ID:???
>>944
ガッーーー!

次スレぐらいあってもいいんじゃないか。
低レベルだとしても語るところは欲しいし

てことで、テンプレかんがえれ>1
0946nobodyさん2005/10/27(木) 20:12:19ID:???
山ちゃんはー
このスレをー
やめへんでー
0947nobodyさん2005/10/27(木) 20:22:16ID:???
次スレは必要だな。
もう少ししたら誰か立ててくれよ。
0948nobodyさん2005/10/28(金) 03:58:49ID:???
>>946
wikipediaによると山ちゃんが使ってるのはC++らしいぞ。
0949nobodyさん2005/10/28(金) 05:31:27ID:???
majikayo
オブジェクト指向を理解してるようにはとても見えないが
見かけによらないな
0950nobodyさん2005/10/28(金) 08:07:36ID:???
ホウセイじゃない別の山ちゃんに一票。
0951nobodyさん2005/10/28(金) 10:24:08ID:???
山崎邦正 - Wikipedia
http://ja.wikipedia.org/wiki/%E5%B1%B1%E5%B4%8E%E9%82%A6%E6%AD%A3

>PCのスキルはもの凄く、情報処理技術者試験合格のためだけに
>専門学校に入学、在学中に第一種情報処理技術者試験
>(現・ソフトウェア開発技術者試験。非常に難易度の高い国家
>試験)に合格。その後学費滞納などの理由で中退。趣味は
>ソフトプログラミング(メインPCのOSはLinux、主にC++言語を使用)。

だそうだ。
0952nobodyさん2005/10/28(金) 13:42:45ID:???
もはやツッコミどころしか無いな…。
0953nobodyさん2005/10/29(土) 14:41:17ID:???
このスレを読んでもわからなかったので教えてください
C言語でいう構造体って便利じゃないですか
このオブジェクト指向と構造体って何か関係がありますか?
0954nobodyさん2005/10/29(土) 18:56:40ID:???
このスレ読んで分かろうとするのが間違いなんじゃ・・・。

オブジェクト指向では、C言語の構造体の考え方を拡張して、
「構造体ごとに固有の関数を持てるようにしたもの」と言えなくもない。
0955nobodyさん2005/10/29(土) 21:28:22ID:???
C++は構造体でクラスを宣言しても良かったような・・・
0956nobodyさん2005/10/30(日) 00:31:40ID:???
C++の(キーワードとしての)structはデフォルトのアクセスがpublicな点を除いて、全ての面でclassと同じ。
でもC時代のメモリ割り当ての拡張としての構造体とは、概念的にちょっと違う気もする。

よーし、いい加減スレ違いな話題になってきたぞ。
PHPのOOの話題も尽きてきたので、別にどーでもいいんだがw
0957nobodyさん2005/10/30(日) 01:44:14ID:???
構造体はオブジェクト指向の進化の過程に位置づけられる
ネコやイヌに対するミアキスみたいなもんだよ
0958nobodyさん2005/10/30(日) 10:30:51ID:???
>>957
比較例の方が難しい。
0959nobodyさん2005/10/30(日) 12:14:41ID:???
>957
http://ex13.2ch.net/test/read.cgi/gline/1121343081/
0960nobodyさん2005/11/02(水) 01:00:17ID:???
始祖鳥の方がまだ分かり易いな
0961nobodyさん2005/11/05(土) 16:17:15ID:3i8SmZZ/
結局OOというかMVCで厳格に共同生産制上げて行くなら、OOしなくでもできてしまうPHPは不向き。
すなおにMVC基本のJavaにしとけってことだ。

Javaほど厳密じゃなくても良くて、ちょっとHTML書けるほどのヘタレを大量に集めて物量で凌ぐのにしかPHPは使えない。

個人でちょこっと作るにしても最初からフレームワーク覚えた方が、同じ物の作り直ししなくて済む分効率的。

結局、Cの敷居が高いからBASICで作ってしまうヘタレが、JavaやフレームワークのOOの敷居が高くてPHPで作ってるに過ぎないのが現実。
0962nobodyさん2005/11/05(土) 21:44:44ID:???
>>961
Javaだって別にMVC基本な訳じゃなくて、かつてはServletにHTML直書きなんて
スタイルも珍しくなかったけどね。

Javaは厳格すぎて少人数での開発にはおおげさ&面倒くさいから
OOPに抵抗ない奴は今ならRubyにいくだろうな。

0963nobodyさん2005/11/06(日) 07:56:24ID:???
>>962
RubyってWebに向いてんの?
0964nobodyさん2005/11/06(日) 09:40:36ID:???
>>963
何に向いているの?
0965nobodyさん2005/11/06(日) 10:46:24ID:???
オナニー
0966nobodyさん2005/11/07(月) 04:27:01ID:???
なんでこのすれこんなんなの?
0967nobodyさん2005/11/11(金) 15:57:45ID:???
>>966
PHP使っている人の中でOOをまともに語れる人がいないから。
0968nobodyさん2005/11/18(金) 20:57:34ID:???
Java厨にもOOまともに理解できてる奴少ないよ。
0969nobodyさん2005/11/19(土) 06:11:00ID:???
じゃあ誰がOOを理解しているのだろう?
0970nobodyさん2005/11/19(土) 08:01:36ID:???
Jane厨
0971nobodyさん2005/11/19(土) 10:51:04ID:???
(O_O)
0972nobodyさん2005/11/24(木) 12:22:16ID:???
>>963
Rails が流行っているとは言え、決定打となるフレームワークがない
という状況が長く続いているのは事実。なんか標準の cgi.rb はちょっと
やだけど、かといって…って感じ。

そこが解決すれば Web にも向くんだが。

今だとロジックは Ruby で書きたいが、インターフェイスは
他ので書きたいって感じになっちゃう。
0973nobodyさん2005/11/24(木) 16:29:32ID:???
Railsは決定打じゃないの?
0974nobodyさん2005/11/24(木) 18:17:56ID:???
決定打登場か!? 決定打登場だ!!
って騒いでるところ
09759442005/11/27(日) 20:05:43ID:???
あれから一月たったが30レスしか進んでないね。
本当に次スレ要る?
予想としては、
「OOならJavaがあるじゃん」
「いやRubyでいいよ」
「えーっ!PHPだってがんばってるもん><」
の繰り返しになりそう。
0976nobodyさん2005/11/28(月) 02:26:56ID:ANoVFrgv
>>975
なければ無いで、いろんなスレにOO系の話題が時々ふられて
まとまりがなくてウザイので、あったほうがいいと思う。
0977nobodyさん2005/11/28(月) 04:52:35ID:a54yzRbD
PHP使ってる香具師のスキルが低すぎてOOPは無理だと思う(w
0978nobodyさん2005/11/28(月) 04:55:00ID:???
>>976
とは言ってもこのスレに誘導されてるとこあんま見たことないんだけど。
0979nobodyさん2005/11/28(月) 12:48:27ID:???
>>977
OOPよりもOODだろ。PHP厨に出来る奴がいなそうなのは。
0980nobodyさん2005/11/28(月) 14:18:28ID:???
じゃ次スレはPHPに限定せず、WebProg全般のOOスレにするってのはどう?

【PHP Perl】Webでオブジェクト指向プログラミング【Ruby Java】

JavaやRubyは最初からOOPLで有利な立場にあるので、あえてPHPとPerlを前に置いてみた。
ASPは漏れ自身がさっぱりなのでどうしたらいいか誰かおせーて。
0981nobodyさん2005/11/29(火) 03:15:58ID:gl3Jq/2L
>>979
OOAもダメかもね。
0982nobodyさん2005/11/29(火) 03:50:01ID:???
>>980
それは良さそう
レス数が950を超えています。1000を超えると書き込みができなくなります。