いくつかの小さなサイトで Codeigniter や Kohana などの PHP フレームワークを使用したことがありますが、MVC を大規模なプロジェクトに適用できるかどうか、もしそうなら、クリーンなクロードを維持するためにどのような予防策を講じる必要があるか疑問に思い始めています。これを防ぐために、大規模なサイトはどのような慣行を使用していますか? Amazon や Flickr のコードは MVC やその変種を使用していますか? 特定の問題を考慮して、大規模なプロジェクトに MVC を実装する最善の方法を示すガイドはありますか?
-- 接線 --
Kohana を使用する現在のプロジェクトで、私は自分のモデルがどのような役割を持つべきか疑問に思うようになりました。多くの場合、モデルは構築しようとしているオブジェクトのごく一部しか記述できません。つまり、User のオブジェクトが必要なので、Users_Model を使用して Users テーブルからユーザーを抽出します。ただし、各ユーザーはインベントリに複数のアイテムを持っているため、Users_Inventory_Model も使用する必要があります。ただし、各インベントリ項目には、それに関連付けられた他のテーブルもあります。コントローラーで単一のユーザーを構築するには、複数のモデルにアクセスする必要があることがわかるまで、同様です。さて、これを多くの異なるコントローラーで行うことを想像してみてください。すると突然、乱雑で冗長なコードと非常に太ったコントローラーを使用していることに気付きます。
これにより、面倒な作業のほとんどを処理するライブラリが必要になるのではないかと考えました。そうすれば、Users ライブラリを作成して、関連するすべてのユーザー データをロードし、更新、削除などのほとんどのロジックを実行させることができます。これは、ほとんどの MVC プロジェクトが進化する方法ですか? コントローラがライブラリを呼び出してビュー用のデータを準備している間に、ライブラリがモデルとの対話の大部分を行うようにしますか? とにかく、これは私が MVC について持っていた質問の 1 つにすぎず、オンラインで答えを見つけることができませんでした。