読者です 読者をやめる 読者になる 読者になる

log

日記です

地道に理解のMVC

PHP Web

MVC設計って、作っててこれで合っているのかどうかわからない…
PHPjQueryMySQLを使ってMVCAjaxぶったWebアプリケーションを作ってる。

ViewにJavaScript(jQuery)とHTML
ControllerにPHP
ModelにもPHP、DBにはMySQL

ControllerはViewのJavaScriptの呼び出しに対し返答する。
返答の内容は、Modelに聞きに言って、Modelが返してきたこと。

ViewとControllerの架け橋はJSONを使う。

Controllerは…

Viewは…

  • Controllerから受け取った情報を表示する。
  • Controllerから受け取ったJSONデータを評価、オブジェクトとして格納。
  • DOM関数などでHTMLに埋め込む。
  • ユーザーからの入力を、Controllerに投げて、結果を受け取る。

Modelは…

  • データベースとのやり取り。
  • Controllerから受けた依頼を、実行。
  • データベースからデータとってくる
  • 配列など使いやすいようにする
  • それをreturnで返す。
  • ControllerはModelの返り値を受け取る。
  • ModelとControllerは作ってしまえば結構使いまわす、あまり書き変えない、関数、クラスって感じ。

多分こんな。
今んとここういう理解。

Viewにロジックは書かない、らしいけど、jsファイルにはJavaScriptのロジックがたくさん。いいのかな?Viewにあたると思うんだけど…。
テンプレートエンジンってのが気になる。
多分そうだ、jQueryテンプレートエンジンを使えば、かなりViewはすっきりする。
さて
Smatryってのはどういう役割なんだ?
やつもテンプレートなはずだ。

そうか、やはりまだまだMVCは奥が深いな…
理解が足りない。

ViewとControllerのやり取りにPHPは使っていない。
これで当たっているのか?
Ajaxの場合のViewはJavaScriptで大丈夫なのかな?


ちなみにフレームワークは未使用。

MVC理解の参考文献は学校の先生のソースコードとその説明。
概要等はGoogle先生に教わってなんとなくつかんでいたけど、いまいち理解できなかった。具体的な実装例、一連の流れがなかったから。末端の技術が自分になかった。PHPオブジェクト指向とか、単純にJSONでのやり取りとか。CakePHPの本買ったけどいまいちよくわからず、まだ早かったみたい。
そんな中、卒研担当の先生がいきなり作ってきたWebアプリのソースコードがもろMVCだったのが目からうろこ。師匠はこんなにも近くに存在した。実際に動いいているもののソースコードはすごく参考になる。フレームワーク使わずにフルスクラッチで作られている点も、理解を助けた。わからないところは、丁寧にゆっくり、順を追って教えてくれる。
あの人授業では、あまりつまらない、あまり教える気がないのかな??とか思っていたけど、質問すればかなり充実した回答がもらえる。あの人からしれば、お前らもっと基礎をちゃんと理解しろー!コーディングしろー!っていう話なんだろうな。だからあんまり黒板の前での説明やる気ないのかなw 一応しているけど。

これを機会にMVC理解するぞー!
今のところ、このMVCソースコードが自分にとって一番の教材。
これを吸収し終えたら、MVCの本を買って自分の理解が正しいか確かめよ。
もしくはCakePHPの本読むか、Zendの本買ってみるか。


さーさーさー
しかし、わかんこと多いぞーw
JavaScriptも突っ込んでいきたい。


まぁ!
試行錯誤コーディングしていけばきっとわかる(´・ω・`)
とりあえず、ガシガシコーディング!ガシガシ動かそう!

追記
でも、厳格な?ちゃんとした?MVCは知らないです。MVC学ぶならフレームワークを使うべきかも。Viewに直接アクセスするのを想定しています。ControllerはDBとViewのAjaxな橋渡しをしています。でもMVCではControllerにアクセスして、Viewを返すのが普通?
AjaxMVCと、静的なMVCでも若干実装方法が違いそうな…
よくわかんないっす。
参考にしないでください。