ぶろぐ

日記です

Ajaxのコントローラー


自分のMVCへの理解はこれで正しいのか?
CakePHPを触ってみて思った。

Ajaxやるなら、Viewを返すってゆーより、処理の結果だけを返してほしい。
CakePHPを触る前は、それがControllerだと思っていた。
でもCakePHPのブログチュートリアルをやってみると、Controllerはアクションに対して処理を行いViewへのルーティングを行うものだった。

あれ?
自分が思っているControllerと違う、と思ってしまった。

Viewからの要求に対して動的にJSONを出力する、それがControllerだと。

これは多分Ajax用のコントローラーだ

多分そういうコントローラーの定義が存在するはず。

まだ勉強していないけど・・・。

Ajaxヘルパーとかあるし、Ajax用のlayout?ルーティング?があるっぽい。

普通のControllerを勉強する前に、AjaxのControllerを学んでしまっていたのね。

まぁ、そこは別階層、別物として考えればどっちを先に学んでも問題はないかな?

ただ、普通のControllerはそういうものだ、ということをCakePHPを通して知ることができ、Webの文化が知れたのはひとつ勉強になった。

ついでにmod_rewriteが楽しいことも知った笑

そして今作ろうと思っているものは、AjaxのControllerとユーザーに直接アクセスさせるView、そしてDBにアクセスするModelがあればいいので、CakePHPをあえて使う必要もないかな?
mod_rewriteで/viewがドキュメントルートであるように、利用者に見せかけて。
先生が「CakePHPはかじってみたけど、なんか使いづらいからやめた」、と言っていたのはそういう点だったんろう。
既存のDB使うから、規約にあわせるためにAUTO_INCREMENTのフィールド追加するのもなんかいやだし…。そうしない方法もあるんだろうけど。

ちょっとめんどいけど、SQLを直接ポチポチ打ちますよ。

追記

しかしSQL文を一切打たないでDBの操作ができるCakePHPにはすごいびっくりした。
ほかのフレームワークもそうなんだろうなー
これがDBの抽象化?O/Rマッピングとか言うの?
よくわかんないっす、多分違うな。

しかしいろんな「型」が存在して困る。
フレームワークもそんな簡単じゃないし(多分、少なくとも自分には)
Ajaxはこうしろ!っていう一般的な型を解説しているところってあまりない気がする。
自分に一番あっている「型」、ベストプラクティスな「型」を見つけるのが大変だ。
今は自分で見つけたわけじゃなくて、先生の作った「型」を参考に開発している。
はじめはこの「型」はあたっているのか?と疑ったけど、上記に書いた「AjaxのController」の理解が間違っていなければ、この「型」は多分あってる。
ってかまー、正しい「型」なんて存在しないか。
今でこそjQueryがあるけど、それが誕生する前のJavaScriptのコアなメソッドだけでAjaxを実装していた人たちって言うのは、すごい大変だったんだろうなぁ…。というか、まだAjaxのスタンダードがなかった時代にAjaxを実装してきた人たちは。
「型」を決めるのが。

そういう時代を生きてきた人たちに、Ajax簡単じゃん、とかいった日には多分ぶち切れられるんだはず。