地道に理解のMVC
MVC設計って、作っててこれで合っているのかどうかわからない…
PHP、jQuery、MySQLを使ってMVCでAjaxぶった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を返すのが普通?
AjaxなMVCと、静的なMVCでも若干実装方法が違いそうな…
よくわかんないっす。
参考にしないでください。