PHPでOOP (894レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
412(6): nobodyさん [sage] 2008/02/14(木)15:51 ID:???
>>408-409
まあ、そこは設計しだいでいくつかやり方があるけど、
ActiveRecordパターンの場合、インスタンスはテーブルを作るという意味ではなく、
クラスがテーブル全体で、そのインスタンスはテーブルのレコードという扱いになる。
そしてフィールドがプロパティ。
414(1): nobodyさん [sage] 2008/02/14(木)16:01 ID:???
>>412
これですかね。
http://www.martinfowler.com/eaaCatalog/activeRecord.html
細かいけど、
>そのインスタンスはテーブルのレコードという扱いになる。
なら、searchメソッドは、staticなり外部に置くのではないかと思う。
確かに updateはこの場合 staticにすべきものではないですね。失礼。
415(1): 412 [sage] 2008/02/14(木)16:03 ID:???
>>408
> あと、connection をオブジェクト内部にもってしまうと、そのオブジェクトはいつでも
> SQLを実行できてしまうので、引数で渡すようにしてる。
なんで「そのオブジェクトはいつでも SQLを実行できてしまう」のが悪いのかわからないけど、
> (まぁ、staticにしたら引数で渡すしかないけど)
これが理由なら、そのクラスをシングルトンパターンで
実装するという方法もある。
CPersonal::search() などという書き方で呼べるぞ。
ただし、PHP4に対応した書き方だとすごく気持ち悪いんだが(笑)
CakePHPでgetInstance()というメソッドをキーワードにして探せば
実装例が見つかると思う。
getInstance()関数内のstatic変数に配列[0]にで確保(なぜ?)した後
各メソッドの初めで$_this = getInstance() して$_thisで参照するという・・・
まあ見たほうが早い(?)
417: 412 [sage] 2008/02/14(木)16:13 ID:???
>>414
> なら、searchメソッドは、staticなり外部に置くのではないかと思う。
あー。staticでいいです。単に個人的な環境の理由から
PHP4を使っていて忘れていただけです。
418(1): 412 [sage] 2008/02/14(木)16:17 ID:???
>>416
でもどっちみちデータベースに操作を出来るところなら、
コネクション知っているわけで、結局同じことでしょ?
それにクラスの変数はグローバル変数じゃないからw
421(1): 412 [sage] 2008/02/14(木)18:14 ID:???
>>419
しかし、テーブルに関するクラスでデータベースを操作しないメソッドって
あまりないからなぁ。まあ別にいいけどね。
426: 412 [sage] 2008/02/14(木)20:04 ID:???
>>424
staticはあくまでstaticだよと明示しているだけで
本質的には必要なものとは思えないけど。便利だけどね。
それと、CDB_PostgreSQLは「機能をまとめたクラス」ではないよ。
たとえば一つのアプリでサーバー負荷分散などで、
複数の接続を使用するときとか、複数のインスタンスが出来る。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.025s