探検


PHPでOOP

2007/02/23(金) 13:35:52ID:???
PHPを使ってプログラミングするとき、
プロシージャ指向(手続き型、構造化プログラミング)でもできますが、
オブジェクト指向を使った場合の恩恵を享受するために、
PHPでオブジェクト指向プログラミングの勉強をしてみましょう。

<目的>
PHP5でオブジェクト指向プログラミングを行なうための知識を習得する。
(PHP4のOOPもOK、このスレが1000に行く前にPHP6が出たらPHP6のOOPもOK)

<方向性>
・このスレは、プログラミング初心者、PHP初心者の勉強の場として利用することを前提にします。
・PHPのOOPの話題に限定します。
(Ruby、Python、Javaなど他言語のOOPについては、その言語のスレッドでお願いします。)
・PHPのOOP学習に役立つ本、WEBサイトの紹介をお願いします。

<その他>
・略記は、「OO」=「オブジェクト指向」、「OOP」=「オブジェクト指向プログラミング」でお願いします。
・質問をする人はなるべくトリップを付けましょう。
・荒らし、煽り、叩き、気違いは無視・無干渉でお願いします。

このスレで、今日から貴方もOOP!!!\(^o^)/
697nobodyさん
垢版 |
2009/02/26(木) 23:57:14ID:???
ぶっちゃけサーバサイドのフレームワークは制作の効率のためであって
性能うんぬんは考えてないんだよな
698nobodyさん
垢版 |
2009/02/27(金) 00:54:42ID:???
勉強不足で申し訳ないんだが、制作の効率より性能うんぬんを優先したフレームワークを教えて欲しい
699nobodyさん
垢版 |
2009/02/27(金) 05:45:51ID:???
つーか開発効率は性能に含まれるだろう
700nobodyさん
垢版 |
2009/02/27(金) 06:00:50ID:???
は?
701nobodyさん
垢版 |
2009/02/27(金) 13:31:01ID:???
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
699 名前:nobodyさん[sage] 投稿日:2009/02/27(金) 05:45:51 ID:???
つーか開発効率は性能に含まれるだろう
702nobodyさん
垢版 |
2009/02/27(金) 13:31:44ID:???
>>698
性能を求めるならフレームワークなんて使うなって話
703nobodyさん
垢版 |
2009/02/27(金) 19:50:17ID:???
>>698が言ってる「性能」って何?
これは釣りなのか?
704nobodyさん
垢版 |
2009/02/27(金) 20:00:15ID:???
「やあ、とりあえず性能の一番いいやつを一つくれないか。」
「今日はCakePHPがお勧めとなっております。」
「じゃあ、そいつをくれ。」
「かしこまりました。」
705nobodyさん
垢版 |
2009/02/27(金) 20:35:39ID:???
>>703
なんで俺に絡むんだよ。
たった1個上のレスも読めないのか?
釣りなのか?
706nobodyさん
垢版 |
2009/02/28(土) 01:39:57ID:???
>>705
何言ってるんだ?
1個上のレスを読んでるから性能って何って話だよな
707nobodyさん
垢版 |
2009/02/28(土) 02:02:53ID:???
>>697に聞いてくれよ
俺は知らんよ。
使われた言葉返しただけなのにw
708nobodyさん
垢版 |
2009/02/28(土) 04:26:33ID:???
1ファイルにphp+html+css+jsべた書きが催促
709nobodyさん
垢版 |
2009/02/28(土) 08:03:49ID:???
SEO的に最悪だな
710nobodyさん
垢版 |
2009/02/28(土) 08:44:26ID:???
出力されるHTMLがSEOに合ったものなら、途中経過は関係ない。
711nobodyさん
垢版 |
2009/03/04(水) 21:56:11ID:vdYaMRth
PHPでMVCってModel, View, Controllerの3クラスに
それぞれ適当な補助クラスをコンポジる感じでok?
712nobodyさん
垢版 |
2009/03/04(水) 22:30:14ID:???
ng
713nobodyさん
垢版 |
2009/03/04(水) 22:51:16ID:???
検索するとViewは普通にHTML部分にしてクラスにしない奴が多いが…
それはどうだろう…
714nobodyさん
垢版 |
2009/03/04(水) 23:44:42ID:???
>>713
別にありじゃない?
PHPTALってのもあるし
厳密には、TALに値渡す必要があるので、Viewが純粋なHTMLのみという訳ではないけど
715nobodyさん
垢版 |
2009/03/05(木) 10:13:09ID:???
未だにコントローラが何者なのかわからねえw
コンポーネントってのもよくわからんし。
716nobodyさん
垢版 |
2009/03/05(木) 11:05:22ID:???
基礎中の基礎すぎるだろ
717nobodyさん
垢版 |
2009/03/05(木) 12:25:35ID:???
コントローラの役割そのものがわからないというよりも『どこまでがコントローラがやるべきことなのか?』ってことかな。

ビューとコントローラで迷うことはないけど、モデルとコントローラのどっちに書くべきかな、って言うのが多い。


まぁ、経験で補うもんだろうね。
718nobodyさん
垢版 |
2009/03/05(木) 17:40:27ID:???
100%中の100%!!!!!!!!!!

byとぐろ兄弟
719nobodyさん
垢版 |
2009/03/06(金) 04:31:52ID:???
ってか3つに分けようとするから分からないんじゃない?
720nobodyさん
垢版 |
2009/03/06(金) 14:28:15ID:???
>>719
なんだ君も教えて君か
721nobodyさん
垢版 |
2009/03/10(火) 12:40:11ID:???
アセクサ
722nobodyさん
垢版 |
2009/03/29(日) 09:52:31ID:???
アホクサ
723nobodyさん
垢版 |
2009/04/06(月) 08:51:50ID:???
保守しときます。
724nobodyさん
垢版 |
2009/04/06(月) 09:51:43ID:???
保守要らない板だから・・
725nobodyさん
垢版 |
2009/04/08(水) 23:43:02ID:???
PHP研究所って全然PHP関係の書籍ださねーな。
社内だけで技術囲ってんじゃねーぞ。
726nobodyさん
垢版 |
2009/04/08(水) 23:49:40ID:???
全然おもしろくない
727nobodyさん
垢版 |
2009/04/10(金) 03:54:17ID:4A05Vd6N
オブジェクト指向で、MVCのMとCがいまいちつかめない
処理はModel、ViewとModelを制御するController
ってある。
例えば、ある条件を満たしたときに、データファイルからデータ一覧をリスト形式にしたくて、
・データ1
・データ2

みたいにずらーと繰り返しして表示するとき、
modelには、ある条件を満たしたしたかどうかを判断する処理を、
viewには<div>やら<ul><li>を、
controllerには繰り返しのwhileを?
って迷ってしまう。
でもwhileて処理になるからmodelに書いた方がいいんじゃあいの?、と・・
でもmodelにwhileの処理かくと、同時に<br>やらもmodelに書いて
viewには何を?・・ってなってしまって先にすすめない・・

つづく
728727
垢版 |
2009/04/10(金) 03:59:45ID:4A05Vd6N
ごめん、やっぱりつづかない。
非常にわかりにくいかもしれないけど
こういうときって、素直にcontrollerにwhile処理いれとけばいいのかな。
でも、controllerに制限させるものが二、三個ならいいけど
もっとwhile処理するものが多くなれば、
処理がかぶってくるんだけど、
それが気持ち悪くて・・
なにか上手い回避方法を教えてください
729nobodyさん
垢版 |
2009/04/10(金) 04:08:52ID:4A05Vd6N
で、一応考えたのが、
viewにはhtmlタグだけを、
modelには条件処理とwhile処理を、
このwhile処理の中にviewで書いたhtmlタグを
放り込んで繰り返し処理。
controllerで、このmodelに引数入れてやれば
このmodelの変数には、
条件処理された結果と、
htmlタグつきのデータ一覧が格納されて、
表示される。
みたいにしたんだけど、これでいいのかな。
wikiのまとめサイトみるとmodelにwhileかかずに
controllerに書いてたから、何か意図があってやってるのかなと
730nobodyさん
垢版 |
2009/04/10(金) 04:22:59ID:???
MVCまだ早いんでないかな
731nobodyさん
垢版 |
2009/04/10(金) 09:37:55ID:???
Model はデータをどこからともなく持ってくる。

View にはテンプレートエンジン使って View の中でループさせる。

Controller は Model に「データ持ってこい」と頼んで、受け取ったデータを今度は View に渡して「表示しろ」と頼む。
View は渡されたデータをぶん回して表示する。
「頼む」ってのは メソッドを呼び出すことを指す。


嘘教えてたら許して
732nobodyさん
垢版 |
2009/04/10(金) 10:04:35ID:???
>>731
というとつまり、もしも動的にデータを一覧表示させたいときなんかは、
”データ持ってこいとModelに頼む→Viewに渡して表示させる”
という一回の表示を、whileなりなんなりを使って何回も繰り返す操作を
Controllerがやるってことでいいのか。
733nobodyさん
垢版 |
2009/04/10(金) 10:51:33ID:???
date.txtにdate1,date2,date3,date4ていうデータが入ってたとき、

"2"という条件を与えたときに、
date1<br>
date2<br>
"4"という条件を与えたときに、
date1<br>
date2<br>
date3<br>
date4<br>
という一覧を行いたい場合。

Modelには、指定されるデータを一つ引き出せるメソッドを、
Viewには、Controllerから受け取ったModelの一つのデータの後ろに、<br>を加えてechoするメソッドを、
そしてControllerで、Modelのメソッドを実行して、得られたデータをViewのメソッドへ渡し、一つデータを表示させる、
この操作を条件分繰り返すwhileもControllerに書いておく。
で、いいのけ

超基本的な場合、イメージ的には、
・Viewは、htmlしか知らない人でも、(phpの変数以外は)htmlタグ部分がはっきりしてるので弄ろうと思えば弄れる作り
・Modelは、処理されたデータを与える
・Controllerは、初期条件をMVに与えたり、MVにあるいろいろなメソッドの中から、
 必要なものを選んで、データを得たり、表示させたり(MをVに渡して表示させたり)、
 MVを組み合わせて完成したものを表示させる
みたいな感じ
だけで基本的名ことがまだまだ全然わからん
734nobodyさん
垢版 |
2009/04/10(金) 12:01:58ID:???
>>732
まあ作り方によるんだろうけど……

ループでViewを何回も呼び出すよりも、例えば配列でデータを一度に全部渡しちゃって、Viewにループしてもらったほうがスッキリしない?
Viewの中にPHPの生のコードが入るのを避けたいなら、先に挙げたテンプレートエンジン使うとかすればいいし。
735nobodyさん
垢版 |
2009/04/10(金) 12:17:29ID:???
>>734
たしかにそうか
ループするデータ表示のデザインて単純なものが多いだろうし
デザイン変更するときも、viewにphpのコードが入っててもそこまで苦にはならないか。
テンプレートエンジンどれがいいか決めれないし、
controllerにphpコードの種類がいっぱい入ってくると見にくいし長くなりそうだから
とりあえずはviewでループさせる方法にしてみるわ
あんがと
736nobodyさん
垢版 |
2009/04/10(金) 12:48:47ID:???
>>727

レス全部読んでないから、的外れになるかもしれないけど、
MVCの基本コンセプトは『プログラムの着火点(エントリーポイント)は、URLである』
という考え方が中心になっているらしいよ
つまり、どんなWEBアプリもそのプログラムにアクセスしないと何も起こらないという発想。
そこから更に考えを発展させて、URLの一部にメソッドを含めよたのがMVCのポイント。

この、メソッドを含んだURLを処理する枠組みをコントローラにした訳。

だから、コントローラを中心にデータをサーバに貯めるならModelに、
データをユーザに表示するならViewにと処理系を分けた。

一般的にビジネスロジックはModelにとか言われるけど、
このビジネスロジックとはデータに正規表現をかけて別の形に置き換えるとか、
特定の数値を暗号化したりとか、殆どの処理の処理を指す。

だから、ロジックの中心はModelで処理され、コントローラはただMやVにデータを振り分けるだけに徹するのが
正しいMVC設計と言われてる。

実際のコード量もControllerが異様に肥大しているMVCは、悪いMVCとされている。
迷ったらMにロジック書いて、Cから呼出すようにする。
どうしても呼出せないロジックだけCで処理しよう。
737nobodyさん
垢版 |
2009/04/10(金) 13:22:45ID:???
>>736
なるほど
完全に思い込みで、
Vには、phpコードでの処理に関連するものはほとんど無くしてhtml表示メインが良い
みたいになぜか考えてしまっていて、なかなか進めなかった。

>メソッドを含んだURLを処理する枠組みをコントローラにした訳。
>だから、コントローラを中心にデータをサーバに貯めるならModelに、
>データをユーザに表示するならViewにと処理系を分けた。
これで、C、M、Vにはそれぞれこれをしようっていう考えが固まってきて
踏ん切りがついて先にすすめそうだ
とんクス
738nobodyさん
垢版 |
2009/04/11(土) 01:35:03ID:???
ループして全部表示させるっていうのはVの仕様って気がするんだよねー。

最初の1件とか最初から100件とか、或いは全部っていうのはVの都合なわけで、
変更したいって思ったときはVだけ触ればよくしたい。

ってことで、
無駄とかなんとかは気にせずに、純粋な感じでいうと
Cの人は全部もらって、そのままVの人に渡す
っていうのがMVCぽいかな、って思う。

739nobodyさん
垢版 |
2009/04/11(土) 07:42:37ID:???
>>738
俺は、Vの役割は「もらったデータを表示する」だと思ってるから、
ループする処理とかはCの役割だと思うけどな。
Vは、大量データ表示用のフォーマットや、1件詳細表示用のフォーマットを
持っているという形。
Cは、指定された件数のデータを表示させる機能を持っている、という形。
740nobodyさん
垢版 |
2009/04/11(土) 07:47:58ID:???
抽象論も大事だけど、具体的にコードを書いていきながら進めると分かりやすくなるかもしれないね。
質問者さんは、自分の思う発想でコードを書いてさらしてみたらどうかな。
それに対していろいろな人がレビューをすると何か見えてくるかもしれない。
741nobodyさん
垢版 |
2009/04/11(土) 14:03:22ID:???
PHPじゃないけど、こんな記事があった。

ASP.NET MVC入門
http://www.atmarkit.co.jp/fdotnet/aspnetmvc/aspnetmvc01/aspnetmvc01_01.html
742nobodyさん
垢版 |
2009/05/07(木) 16:51:10ID:???
OOPの理論って奥が深いな。
デザインパターンなども学んで理論に忠実に沿った理想的な
プログラミングをしてみたいなとも思ったけれど、つきつめると
ケースバイケースってことに落ち着くから、こういう、忠実さを
追いかけるのは無駄な考え方のような気もしている。
この考えで合ってるよね?w
743nobodyさん
垢版 |
2009/05/07(木) 16:54:10ID:???
結論出ちゃったじゃないか
744nobodyさん
垢版 |
2009/05/07(木) 20:10:16ID:???
それ、ASP.NETに新しく導入された「ASP.NET MVC」ってフレームワークの記事なんだよ。
そもそもASP.NETはイベントドリブンなフレームワークで、本来の意味でのMVCを採用してたんだけど、StrutsとかRoRとかがウェブで流行ったから、MSも似たようなフレームワークを作ったわけ。
だからのこれまでのASP.NETの方が本来的なMVCに近い。「ASP.NET MVC」は「ASP.NET ウェブMVC」とかって名前にすれば良かったのに。
745nobodyさん
垢版 |
2009/05/07(木) 20:53:37ID:???
M$って、紛らわしい名前つけるのが好きだよね。
ASP.NETにおいてMVCに関する詳しい記事かなと思ったけれど、
実際に読んでみると、まったく別なフレームワークってことだった。
違いについて理解するのがひとつ面倒になったなぁ。
746nobodyさん
垢版 |
2009/05/07(木) 23:05:13ID:???
stackoverflowを作ったヤツね。
747nobodyさん
垢版 |
2009/05/19(火) 20:06:52ID:???
保守しとくね。
748nobodyさん
垢版 |
2009/06/18(木) 20:12:33ID:???
なんでカソってんだー
749nobodyさん
垢版 |
2009/07/02(木) 08:55:14ID:SGa5I59I
PHPにおけるOOPは100mを自動車で走るようなもの
自転車を使え
走れ
歩いてもいいぞ
750nobodyさん
垢版 |
2009/07/02(木) 09:07:04ID:???
OOPを使いまくる必要はないけど
必要な機能をモジュール化したいときにOOPをいいとこ取りすれば便利
751nobodyさん
垢版 |
2009/07/02(木) 09:12:44ID:???
>>748
秋田w
752nobodyさん
垢版 |
2009/08/27(木) 07:51:29ID:???
>>748
最初に設定していた目標が概ね達成出来たからじゃね?w
っていうか、このスレに求めているものを書いていけば
盛り上がりを戻す可能性もあると思うよ。
質問するとか、何かソースを提供するとか。
753nobodyさん
垢版 |
2009/10/25(日) 21:56:08ID:???
一応保守しておきます。
754nobodyさん
垢版 |
2009/10/30(金) 22:56:19ID:???
OOPのしっかりしてるFWどれ
755nobodyさん
垢版 |
2009/11/13(金) 21:51:59ID:???
FWは、その開発目的によるので、結論は出ない。
いや、あおりとかじゃなくて。
756nobodyさん
垢版 |
2009/11/19(木) 15:33:07ID:???
コードの参考になるのはどれかと
2009/12/17(木) 22:30:30ID:???
PHPのフレームワークでMVCのタイプを使ってみました。
同じ機能を作るのに、コードを書く量が少なくて済むと楽ですね!

ただ、MVCだとスクリプトのファイル数が多くなると、ゴチャゴチャして見づらいと思いました。
MVC以外のフレームワークでオススメのものはありますか?

http://www.slideshare.net/NetPenguin/mvc-2659370
・PAC
・RecursiveMVC(HMVC)
・MMVC
・Doc/View
という仕組みが紹介されていました。
758nobodyさん
垢版 |
2009/12/17(木) 22:33:57ID:???
特に無い
2009/12/17(木) 22:48:51ID:???
>>754
ttp://d.hatena.ne.jp/sotarok/20091126/modern_php_programming_at_pfi
↑このスライド資料の72ページ目に、PHPフレームワークの評価が紹介されていました。

・CakePHP
 世界でも日本でも大流行り。当然日本語での情報量も多い。
 Modelが使いやすい。それ以外は嫌いだけど。
 Cake3が別フレームワークにfork

・ZendFramework
 世界的にシェアNo.1?
 書く量の減らないドMフレームワーク
  というかいわゆるライブラリ群

・symfony
 これも利用者多い
 大規模向け。がっちりしてる。

・Ethna
 グリーはこれで動いている!(古いバージョンだけど)

・rhaco2
 大本命の超変態フレームワーク
 すごい

Ruby(RoR)っぽいFW → CakePHP / Lithium
Java(Struts)っぽいFW → symfony
Python(Django)っぽいFW → rhaco
というかんじでしょうか?
2009/12/17(木) 22:56:44ID:???
>>756
ttp://d.hatena.ne.jp/kagigotonet/20091215/1260851032
>PHPはWeb特化言語という特性上他の言語では見られない強力な仕組みがあります。
>その特徴は他の言語では参照で取り回すところを文字列で取り回すところである、と言えるでしょう。
>可変関数
>PHPのフレームワークは、これを基本としています。ライブラリ、モジュールを動的にロードするのが非常に容易
>可変変数
>このように可変変数や可変引数を組み合わせるだけでも、少ないコード量でかなり複雑なことが可能になります。

各フレームワークのディスパッチ(処理の割当て)の仕組みを見ると、参考になりますね。
2009/12/17(木) 23:07:31ID:???
>>750
「名前空間」を活用すると、たくさんモジュールを作っても分類が楽になりますね!
ttp://d.hatena.ne.jp/Fivestar/20091215
ttp://prezi.com/0-vyhjdkslih/
762nobodyさん
垢版 |
2009/12/17(木) 23:10:38ID:???
人の書いた文章を全文コピペするのはどうかと思うよ
763nobodyさん
垢版 |
2009/12/17(木) 23:11:20ID:???
あ、上のは主に>>759に対してね
2009/12/17(木) 23:43:57ID:???
>>734
>Viewにループしてもらったほうがスッキリ
そうですね。
データをループ表示させるのは、ビューの役割。

ビューの部分には
・テンプレート(HTMLファイル)
・テンプレートエンジン(HTMLファイルに文字列を当てはめるパーサー)
の二つが含まれている形にすれば、
表示に関するロジック(繰返し表示の処理など)はビューの中に置けばOK
=表示に関する機能を修正する場合、ビューの中を探せばOK
2009/12/18(金) 00:45:09ID:???
>>727
MVCのモデルはどんなふうに作るか?という話で、
・トランザクションスクリプト
・ドメインモデル
という二つのスタイルがあるそうです。

ttp://pc11.2ch.net/test/read.cgi/php/1241341332/
ttp://proshile.blog.drecom.jp/archive/616
・トランザクションスクリプト
 →古きよきC言語時代の関数が主体の書き方
・ドメインオブジェクト
 →オブジェクト毎に内包する値と役割の責務を明確にしたOOPライクな書き方

MVCのモデルの部分は2層に分けて、
(1)ビジネスロジックコンポーネント
(2)デーアクセスロジックコンポーネント(O/Rマッパーを含む)
と分類する考え方があるそうです。

ttp://satoshi.blogs.com/life/2009/10/rails_mvc.html
ttp://d.hatena.ne.jp/p4life/20091014/1255532618
>Skinny Controller, Fat Model
・コントローラーはシンプルにする
・モデルに処理を集約する → 上記(1)ビジネスロジック=データの加工を担当
・モデルはデータの整合性を保証する → 上記(2)データアクセスロジック=データの読み書きを担当

ttp://www.virtual-tech.net/blog/2008/10/reflex-restful.html
ttp://www.virtual-tech.net/blog/uploaded_images/designold-722880.PNG
↑この図だと、モデルの部分が2層に分かれていて、
サービス層=上記(1)
ドメイン層=上記(2)
という形になるかと思います。
2009/12/18(金) 00:55:44ID:???
>>728
C側に書いてあるコードを、なるべくM側の方に移動した方がスッキリするかも?
CとMの間のデータ受け渡しについて、こんな記事がありました。

ttp://q.hatena.ne.jp/1242894491
>個々のSetterをオーバーライド出来るところが
>symfonyの便利な部分じゃないでしょうか。
>これが出来ないと個々のコントローラでデータを加工するハメになります・・。
>「MVCとして洗練されている」というのは
>「MVCに忠実に機能している」というのと同義かと思います。

一口にOOPと言っても、各フレームワークでちょっとずつ使い方に違いがありますね。
2009/12/18(金) 01:20:21ID:???
>>89
フレームワークを使ってみて、OOPの使い方の理解が深まりました。
皆さん、たくさんのアドバイスをいただき、どうもありがとうございました。
分からないことがあっても、検索したり質問して1個ずつ埋めていけば、確実に進歩できると思います。

どんなプロフェッショナルな人でも、最初は素人だった…
これからPHPの勉強を始める方がいましたら、焦らずに頑張ってくださいね!(*^o^*)/
768nobodyさん
垢版 |
2010/01/16(土) 21:42:43ID:???
どのフレームワーク?
769nobodyさん
垢版 |
2010/03/05(金) 11:55:14ID:???
http://www.phppro.jp/school/oop/vol1/1
サイト見つけたので紹介しておきます。
770nobodyさん
垢版 |
2010/04/20(火) 14:58:53ID:???
オブジェクト指向ってrequire文とinclude文みたいな考えと同じかな?
必要なときにどこからでも呼び出せるプログラムみたいなものだよね。
771nobodyさん
垢版 |
2010/04/20(火) 18:56:50ID:???
うん
772nobodyさん
垢版 |
2010/04/21(水) 02:32:40ID:???
OOPの説明で一番わかりやすかったのがプレーヤーの例

プレーヤーを継承した CDプレーヤー,MP3プレーヤー がある
それぞれに 再生,停止,早送り,巻き戻し,次トラック,前トラック という機能(メソッド)がある

具体的な処理はそれぞれが行うので,使う人はプレーヤーの処理している内容を
理解している必要はなく,再生したいときに再生ボタンを押すという事だけ
分かっていればいい。(カプセル化)

つまり考え方であって,そういう意味では間違ってないのかもしれない。
773nobodyさん
垢版 |
2010/04/21(水) 23:48:02ID:???
それぞれにあるのではなく、プレイヤーという抽象クラスにあるのでは?
774nobodyさん
垢版 |
2010/04/22(木) 01:28:13ID:???
>>773
ダックタイピングなら、それぞれにあってもいいよね
775nobodyさん
垢版 |
2010/04/22(木) 20:41:56ID:???
OOPの説明でダックタイピングの例出すの?
776772
垢版 |
2010/04/22(木) 23:04:57ID:???
>>773
そうなんだけど,具体的な実装がそれぞれ違うという意味で
ああいう書き方にした。
777nobodyさん
垢版 |
2010/04/23(金) 00:43:27ID:???
>>775
PHPは型にしばられない(しばられなさすぎて困る)スクリプト言語だからね。

逆に、静的言語のように型を意識しすぎると、スクリプト言語のメリットが少なくなると思う。

「じゃぁ、お前、クラス階層つかわねーのか?」と言われればノー
コンポーネント(レイヤ)の中では、型を意識し、拡張する場合は継承も使用する。
コンポーネント間の接続は型ではなくメッセージ(メソッド)に束縛させるように意識している。

でも最近は、interface作って、抽象クラス作ってというのがおっくうになってきたので、可能ならメソッドポインタによるコールバックで済ませちゃうこともしばしば。
778nobodyさん
垢版 |
2010/04/30(金) 11:21:02ID:???
Yiiブログチュートリアル 日本語訳
http://www.craftgear.net/docs/yii_blog_tutorial/index.html
本家の日本語訳が途中でストップしてるけど、こちらは全部訳してある。

本家
http://www.yiiframework.com/doc/blog/ja
779nobodyさん
垢版 |
2010/05/22(土) 17:38:18ID:???
保守しておきます。
780nobodyさん
垢版 |
2010/05/24(月) 00:43:02ID:???

javaや.NETはたまたPythonあたりの純血PGが書けばOOPっぽいソースになると思うよ。
PerlとかPHPから始めました、ってのはだめだな。
781nobodyさん
垢版 |
2010/06/09(水) 18:32:35ID:uqJikGsn
PHP6のオブジェクト指向ってなにか大きな変化ある?
782nobodyさん
垢版 |
2010/06/09(水) 21:02:23ID:???
遅延静的束縛とか
名前空間とか
783nobodyさん
垢版 |
2010/06/09(水) 22:05:43ID:???
名前空間は5.3だろ
784nobodyさん
垢版 |
2010/06/09(水) 22:50:19ID:???
遅延静的束縛もですが
785nobodyさん
垢版 |
2010/06/11(金) 20:18:27ID:???
機能追加がほとんどか。
じゃあ、PHP5のコードをPHP6に移植しても問題なく動くってことでいい?
PHP4→PHP5のときは大変みたいだったけど。
同じ思いをしたくない。
786nobodyさん
垢版 |
2010/06/12(土) 05:01:32ID:???
互換性見れば分かるだろ
787nobodyさん
垢版 |
2010/06/13(日) 07:15:58ID:???
逆に互換性なんかいいから関数の無茶苦茶な命名規則とか直して欲しい
788nobodyさん
垢版 |
2010/06/20(日) 11:50:01ID:???
関数はもうほうっておいて、
公式にオブジェクト指向ライブラリを提供すればよい
789nobodyさん
垢版 |
2010/06/20(日) 15:53:03ID:???
>>788
SPLって公式じゃないの?
790nobodyさん
垢版 |
2010/06/21(月) 16:09:23ID:L/6UXzEf
質問するのが怖いんだけど、自分はフォームのパーツを呼び出すのに
オブジェクト指向(クラス)を使ってるつもりなんだけど正しいのか自信がない

クラスformPartsの中で各プルダウンやラジオボタンの要素(nameとvalue)を
外部ファイルから読み込んどいて
$fp = new formParts();
$pref = $fp->callPullDown('prefecture',$val);
$job = $fp->callPullDown('job',$val);
$sex = $fp->callRadioButton('sex',$val);

こんな感じでメソッドでパーツの種類を指定しつつ(ラジオボタンかプルダウンか)
そのパーツの要素(都道府県とか職業とか)と既定値($val)を投げて呼び出してる。
プルダウン要素とかは各メソッド内部で引数によって外部ファイルから読みこんでる。

クラスってこんな使い方でいいの? 継承とかはさっぱりわからない、どういう状況で使うんだか。
あと1さん凄いね、ガッツがあるなぁ。。
791nobodyさん
垢版 |
2010/06/22(火) 02:52:17ID:???
OOではないな
792nobodyさん
垢版 |
2010/06/22(火) 02:53:02ID:???
分からないなら普通に勉強しろよ・・・
793nobodyさん
垢版 |
2010/06/26(土) 22:03:26ID:lGwy0O8s
ツールの勉強する前に基本を勉強しろ
794nobodyさん
垢版 |
2010/06/28(月) 10:27:12ID:PXXo1bnr
oopってさ
PHP最大の武器であるHTMLとの親和性の高さを殺してるよね
795nobodyさん
垢版 |
2010/06/28(月) 20:02:03ID:???
なんで?
796nobodyさん
垢版 |
2010/06/28(月) 22:25:44ID:???
いまの流行はテンプレートだから
PHPのHTML埋め込みなんてもう古い
レスを投稿する


ニューススポーツなんでも実況