Re: controllerとviewの基本的なことを教えてください

2012年6月8日 at 10:59

concrete5のいけないところでもあり、僕もちょくちょくやってしまうのですが、viewにロジックを書くのは極力避けた方が良いです。

HTMLとテーブルの読み込みが関係しているとしてもそこは分ける事が可能だと思います。

逆にcontrollerにHTMLタグを書くのも極力避けた方が良いです。

DBの読み込みやデータの加工等でcontrollerが肥大化する様であれば、modelやtoolsに分けるのもアリだと思います。

タグ:

Re: controllerとviewの基本的なことを教えてください

2012年6月8日 at 14:17
みなさんいろいろありがとうございました。

開発が一段落したので、controllerに移す作業を優先しようと思います。

で、これまた基本的なことなのですが、昔で言うメインルーチンがないのでどうも取っ付きが悪いのですが、controllerは、処理ライブラリの集まりなので、昔のメインルーチンに近い雰囲気のviewで作ってしまったように思います。つまり、viewからcontrollerのライブラリを呼び出す感じ。

でも他のブロックを見ていると、controllerがviewを実行させている感じですよね。

controllerのメインルーチンの役割をするコードはどうやって書くのでしょうか。というか、ページが開いたときにまずデータベースの読み込みを始めたいのですがどこにどうやって書くのでしょうか。
 

Re: Re: controllerとviewの基本的なことを教えてください

2012年6月8日 at 18:21
オブジェクト指向ではメインルーチンという考え方は無いと思います。あえて言うならコンストラクタでしょうか?オブジェクト指向以前とコーディングの仕方がぜんぜん違うので

>controllerがviewを実行させている感じですよね。
controller(データ読込・加工部)とview(表示部)は親子ではなく並列で機能によって分けられたものと考えたほうがいいと思います。controller の view() の処理が終わったらview.phpに処理が移行するという感じでしょうか。

>controllerのメインルーチンの役割をするコードはどうやって書くのでしょうか。
view() に書くのがいいと思います。
 

Re: controllerとviewの基本的なことを教えてください

2012年6月9日 at 8:03
controller.php の中は全部functionですよね。なにかのイベントでそれぞれ呼び出されるというのはわかります。

最初は、コンストラクターが呼び出されるというのはわかりますが、次といいますか、ページが開いたときcontroller.phpのどのfunctionを呼び出すのでしょうか。

view()とうfunctionを作れば、view.phpを実行する前にそこを呼び出してくれるということでしょうか。

他のブロックのコードを見てもview()といyのはないのですが、そういう意味ではないのでしょうか。

なにか誤解しているか、そんなことはどうでもいいのかも知れませんが、古い私にはそこが気になるしよくわからないのです。よろしくお願いします。
 

Re: controllerとviewの基本的なことを教えてください

2012年6月11日 at 7:24
理屈はよくわからないものの、controller.php にview() を作って、view.phpにあったコードをほとんどそのまま、そこに移動したところ、とりあえず動作しています。
これから逆に一部を、view.php に持って行く作業をしてみます。

関連ですが、add.php とか edit.php もview.php と同格といいますか、そこでデータベースを読み込んだりして処理するのはよくないですかね。
 

Re: Re: controllerとviewの基本的なことを教えてください

2012年6月11日 at 7:53
add.php や edit.php はカスタムテンプレートが作成できないのでDB読み込んでも問題ないと思います。
しかし、MVCの概念にのっとってコーディングするならやはりcontoroller.phpに書くのがいいと思います。