最低限の知識を先に
とりあえずMVCに関しては適宜ぐぐってください…だと色々とぶれるので。
手前味噌恐縮ですが、以下を先にご一読くださいませ。
http://www.phppro.jp/school/oop/vol4/1
http://www.phppro.jp/school/oop/vol5/1
MWでは
- 1つのcontrollerが「cgi requestを受け取る君」「門番君(やるんならコントローラ継承して実装追加して)」「必要なインスタンスを作る君」「処理を"実処理してくれる君"に振り分ける君」までを担当
- 「実処理をしてくれる君」はmodelと呼称
- 「DBとの仲立ちをしてくれる君」はdata_clumpっていうクラスが概ね。ただし「自力でSQL」もがんがん。その辺は後ほど
- 「テンプレートファイルと変数群からHTMLを動的に作ってくれる君」は、MWオリジナルとしてはconvというクラス(実際にはセキュリティを考慮した secure_conv )か、または一般的なSmartyが多い
- 「cgi responseを出力してくれる君」はviewクラスが担当
- 最後の「最後の後片付けとお掃除君」は、controllerの受け持ち
という流れになります。なので、基本的には
- controllerが前処理を色々
- controllerがmodelをcall:処理する
- controllerがviewをcall:出力する
- controllerがお片づけ
という、controller主体の動きとなります。
また、このために、1プロジェクト単位でみると
- ひとつのcontroller(index.phpとかでnewする)
- たくさんのmodel群(controller内で必要に応じてinclude & newされる)
- ひとつのview(controller内で設定に応じたviewクラスがinclude & newされる)
というインスタンス割り当てになります。
…っていきなり書かれてもよくわからないと思うので。
わからなくなったら適宜戻ってきてください。そのうちだんだん「あぁこーゆーことだ~」って思えるようになりますんで。