私は「MVC を学ぶ」方法の始まりにいます。基本的に、オブジェクト指向プログラミングに大きな問題はありませんが、明確にする必要がある技術的な側面が 1 つあります。どうやら私の理論は十分ではないようです。
現在、KohanaPHP フレームワークのバージョン 3 を使用しています。
状況の例: ユーザーが記事を送信できる Web サイトを持っています。
だから私は次の構造を持っています:
classes/
/controllers/
article.php
/models/
articles.php
ここまでは順調ですね。Kohana_Model を拡張するモデルに問題はありませんが、ORM を使用している正しい方法のモデルを使用しているかどうかはわかりません。
基本的に、Kohana_Model を拡張するモデルを使用する場合、すべての論理演算をモデルに入れます。ORM を使用するモデルについても同じことを行う必要がありますか? ネット上の多くの例で、データベースからのユーザー入力/データに対して論理操作を実行しているコントローラーを見ましたが、これは私の意見では正しくありません。
データベースからいくつかの行を取得する必要があるとしましょう。そのため、モデルに適切なメソッドを作成してオブジェクトを返します。正しいと思いますね。
基本的に、ユーザー入力/データに対するすべての操作 (データベースからの選択、データベースへの挿入、検証) をモデルに入れました。それが私がMVCデザインパターンを理解する方法です。モデルはすべての「機械的」操作を処理する必要があり、コントローラーはモデル/ビュー間の「ブリッジ」にすぎず、「フロント」エンジンです。
それは正しいアプローチですか?
より高度なユーザーにとってはばかげた質問かもしれませんが、良いプラクティスだけを学びたいと思っています。誰かが明確にすることができれば、私は喜んでいます。