PHPでOOP (894レス)
1-

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

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

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

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

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

"2"という条件を与えたときに、
date1<br>
date2<br>
"4"という条件を与えたときに、
date1<br>
date2<br>
date3<br>
date4<br>
という一覧を行いたい場合。
省13
734
(2): 2009/04/10(金)12:01 ID:??? AAS
>>732
まあ作り方によるんだろうけど……

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

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

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

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

一般的にビジネスロジックはModelにとか言われるけど、
省7
737: 2009/04/10(金)13:22 ID:??? AAS
>>736
なるほど
完全に思い込みで、
Vには、phpコードでの処理に関連するものはほとんど無くしてhtml表示メインが良い
みたいになぜか考えてしまっていて、なかなか進めなかった。

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

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

ってことで、
無駄とかなんとかは気にせずに、純粋な感じでいうと
Cの人は全部もらって、そのままVの人に渡す
っていうのがMVCぽいかな、って思う。
739: 2009/04/11(土)07:42 ID:??? AAS
>>738
俺は、Vの役割は「もらったデータを表示する」だと思ってるから、
ループする処理とかはCの役割だと思うけどな。
Vは、大量データ表示用のフォーマットや、1件詳細表示用のフォーマットを
持っているという形。
Cは、指定された件数のデータを表示させる機能を持っている、という形。
740: 2009/04/11(土)07:47 ID:??? AAS
抽象論も大事だけど、具体的にコードを書いていきながら進めると分かりやすくなるかもしれないね。
質問者さんは、自分の思う発想でコードを書いてさらしてみたらどうかな。
それに対していろいろな人がレビューをすると何か見えてくるかもしれない。
1-
あと 154 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s