PHPでOOP (894レス)
PHPでOOP http://medaka.5ch.net/test/read.cgi/php/1172205352/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
195: 192 [sage] 2008/01/31(木) 20:08:35 ID:??? 汚染されちゃうけどコンストラクタで全部の値渡すよりはましじゃないかなあ あとコンパイルするときに全部チェックしてくれる言語とそうじゃない言語ってのもある phpなんだしゆるーくやればいいじゃん なんていうと怒られるかw http://medaka.5ch.net/test/read.cgi/php/1172205352/195
196: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 20:13:09 ID:??? 今調べて知ったのだが、オーバーロードは PHP ではできないらしい。 だったら、コンストラクタで値を渡すよりも、インターフェースで値を 設定するような仕組みになるだろうね。 コンストラクタだと、一度値を設定したら、そのオブジェクトが破棄される まで、再度設定が出来なくなるから。 http://medaka.5ch.net/test/read.cgi/php/1172205352/196
197: nobodyさん [sage] 2008/01/31(木) 20:22:00 ID:??? メンバ変数へのアクセスはsetter/getterを使う。これは議論の余地なし。 それを用意した上でコンストラクタに引数を渡すなら渡せば良い。 複雑で多くの設定をしなきゃならない時以外、 newした直後に使える状態になっている方が使いやすい。 > $view = new CFView(); > $view->m_type = 'in'; これをセットで書かなきゃならないなら、 > $view = new CFView('in'); と書きたい。 http://medaka.5ch.net/test/read.cgi/php/1172205352/197
198: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 20:26:00 ID:??? 私は>>197さんの意見に同意だ。 「このモジュールを使う場合、このように書いてくださいね。」 というコードは、なるべく少ない方がいいからね。 なので、とりあえず設定の値はコンストラクタにいれるという 設計で書いてみた。 http://medaka.5ch.net/test/read.cgi/php/1172205352/198
199: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 20:31:34 ID:??? とりあえず、フレームワークを使ってみろという話が出ているが、 具体的にどのフレームワークを使って、どんなプログラムを書いて みたらいいのか迷うなぁ。 とりあえずはこのあたりに載ってるものの、「和モノ」あたりからかな。 http://pc11.2ch.net/test/read.cgi/php/1197383840/3 フレームワーク自体の自作の話もいくつかあるみたいだ。 ttp://codezine.jp/a/article.aspx?aid=104 http://medaka.5ch.net/test/read.cgi/php/1172205352/199
200: 192 [sage] 2008/01/31(木) 20:36:05 ID:??? viewに渡すデータはセッタで渡したくならない? あとinなのかoutなのか分岐させるとしたらそれはコントローラ側の仕事なんじゃないかなと思うんだけど違うかな http://medaka.5ch.net/test/read.cgi/php/1172205352/200
201: 192 [sage] 2008/01/31(木) 20:42:33 ID:??? いや、見直したらそう書いてた ごめん気にしないで http://medaka.5ch.net/test/read.cgi/php/1172205352/201
202: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 20:46:31 ID:??? >>200 > viewに渡すデータはセッタで渡したくならない? 表示させるデータはセッタがいいだろうね。 > あとinなのかoutなのか分岐させるとしたらそれはコントローラ側の > 仕事なんじゃないかなと思うんだけど違うかな >>185のソースがそれにあたるものだと思ってたけど。 if( ($form_str == "")or($form_str == "in") ){ 省略 }elseif($form_str == "out"){ 省略 } コントローラは、POSTしてきた値を見て、必要なModelやViewを 選択し、実行する役割なので、それを実現したつもり。 http://medaka.5ch.net/test/read.cgi/php/1172205352/202
203: に ◆lKs5QMUHoA [sage] 2008/01/31(木) 21:58:27 ID:??? 厳密にMVCを分けることは出来ない場合もあるということだけど、 CFControlクラスで、CFViewを使って表示する内容までもを 指定していする処理を書いていたのは間違いかな? 検索結果の表示や、データの更新の場合は、 Control→Model→View だけど、 ボタンを押した時の画面の展開のみの場合は、 Contol→View という流れとなり、Viewオブジェクトを 生成するクラスが異なるという処理でいいのかな? http://medaka.5ch.net/test/read.cgi/php/1172205352/203
204: に ◆lKs5QMUHoA [sage] 2008/02/01(金) 07:38:53 ID:??? 「とりあえずはフレームワークを使ってみろ」という返事がきそうだけど、 各クラスの役割は以下のような感じでいいかな? Control ・POSTでデータを受け取り、その値に不正なものが無いかをチェック。 ・変なところからのアクセスではないかをチェック。 ・$_POST["Form"]の値をみて、それに必要な画面と処理を判断する。 Model ・SQLを発行し、データを受け取る。 ・データをViewクラスに渡す。 View ・フォームを表示する。(フォームごとにクラスを分けたほうがいいのかは迷うな) ・データを1件受け取り、tableタグでレイアウトを調整し、表示する。 http://medaka.5ch.net/test/read.cgi/php/1172205352/204
205: nobodyさん [sage] 2008/02/01(金) 09:44:17 ID:??? とりあえずはフレームワークを使ってみろ http://medaka.5ch.net/test/read.cgi/php/1172205352/205
206: nobodyさん [sage] 2008/02/01(金) 11:08:23 ID:??? 自分なりに調べて見つけたPHPのサンプルを使った解説ページも 読むとwebアプリについて学べるのではないかと思っている。 やることが多くなったけれど、とりあえずは以下の3本だてで 勉強してみることになるのかな。 MVCに分けて、簡単なアプリを自作する。 (ログイン、メニュー、検索条件指定、検索結果、データ編集などの画面があるもの) 和モノフレームワークを使って学ぶ。 簡単なアプリを自作する。 http://pc11.2ch.net/test/read.cgi/php/1197383840/3 サンプルで理解! フォームデータの受け渡し ttp://www.atmarkit.co.jp/flinux/rensai/mysql5_03/mysql5_03a.html http://medaka.5ch.net/test/read.cgi/php/1172205352/206
207: nobodyさん [sage] 2008/02/01(金) 12:06:10 ID:??? ちいたんのソース見てみたけれど、 class CObject ってあって、必ずそれが継承されて作られてるよね。 これの都合って何なんだろう。(メリットは何?) javaも.NETもこういう基本クラスがあるよね。 http://medaka.5ch.net/test/read.cgi/php/1172205352/207
208: nobodyさん [sage] 2008/02/01(金) 12:19:15 ID:??? 全部のクラスに共通するメソッド等が実装できる http://medaka.5ch.net/test/read.cgi/php/1172205352/208
209: nobodyさん [sage] 2008/02/01(金) 13:06:22 ID:??? >>208 サンクス。 でも、オーバーロードが出来ない場合は逆に足かせになる可能性もあるね。 例えば、継承されているクラスが沢山ある状況でObjectクラスに メソッドを追加する場合とか。 http://medaka.5ch.net/test/read.cgi/php/1172205352/209
210: nobodyさん [sage] 2008/02/01(金) 16:28:22 ID:??? 喋るのはコントローラとモデル コントローラとビュー 基本的にはね http://medaka.5ch.net/test/read.cgi/php/1172205352/210
211: nobodyさん [sage] 2008/02/01(金) 16:49:11 ID:??? 少ない数のクラスを書いたり読んだりする程度であれば、すぐに分かるのだが、 フレームワークレベルのクラス構造となると、その構成が全く分からなくなって 来るんだよなぁ。何かコツのようなものはあるのかな? 処理の内容を追いかけると、次々に別のクラスに処理を渡す構造になっていて、 最後はあっけない、みたいな感じだ。 フレームワークを作る場合のクラスの設計手法を身につけるなどしないと いけないのかも。 メンバに定義はしていないけれど、メソッドではその変数をエラーが 出ないように処理が書かれているっていう書き方は多いようだ。 そうしておけば、そのフレームワークを使う人は、クラスを継承して メンバに値を代入するだけで良い。 http://medaka.5ch.net/test/read.cgi/php/1172205352/211
212: nobodyさん [sage] 2008/02/01(金) 18:37:23 ID:??? このサイト、説明は分かるのだが、具体的に作っているコードは MVCのうちどれにあたるのかがいまいちです。 ttp://www.stackasterisk.jp/tech/php/phpMvc01_01.jsp Result.php は、Viewにあたるものという解釈でいいんですよね? http://medaka.5ch.net/test/read.cgi/php/1172205352/212
213: nobodyさん [sage] 2008/02/01(金) 18:47:22 ID:??? PHPでMVC関連のサイトを紹介で貼っておきます。 特集:第3回 PHPを思うままに操れるようになる「MVC」と「Smarty」 (1/4) ttp://www.itmedia.co.jp/enterprise/0402/19/epn01.html http://medaka.5ch.net/test/read.cgi/php/1172205352/213
214: nobodyさん [sage] 2008/02/01(金) 18:50:51 ID:??? 2004年って・・・・・・・ http://medaka.5ch.net/test/read.cgi/php/1172205352/214
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 680 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.620s*