Kohana MVC フレームワークを使用して PHP で MVC アプリケーションを構築するのに忙しく、非常にうまく機能します。しかし、対処したいいくつかの小さな煩わしさがあります。
コントローラーとコントローラー自体のアクション間で、多くのロジックが繰り返されます。私はそれについて考えてきましたが、この共有ロジックを含むオブジェクトを定義するのが賢明だと思ったので、繰り返されません。
それから、いくつかのポッドキャストでビューモデルについて聞いたり、ビューでのミッションクリープの防止、または無知は至福です. したがって、ビューモデルは私が探していたものです。
しかし、ここで問題が発生します。ビューモデルに何を入れますか。私の考えは、対応するビューが必要とするすべての情報をビューモデルに収集させるというものでした。これには、すべてのコントローラー/アクションが入力データをビューモデルに渡し、それをビューに渡すだけでよいという利点があります。
これは賢い考えですか?テストに代わって、モデルをビューモデルに渡してモックできるようにするのが賢明です。しかし、私は実際にはモデルを使用していません。代わりに、コントローラーが Doctrine ORM 経由でデータベースにアクセスできるようにしました。すべてのクエリを個別のメソッドに変換するのは少し面倒に思えましたが、何かが足りないのかもしれません。
ビューモデルについて聞いたところによると、それらは単なる DTO です。しかし、動的に弱く型付けされた言語での利点は何でしょうか?
たぶん、私は完全に間違った方向に進んでおり、別の方法で行う必要があります。これについてどう思いますか。
編集:
私が話しているロジックのほとんどは、適切な情報を収集し、それを適切なビューに渡すことです。
例:
私はカスタマーコントローラーを持っています。これらには、追加と編集の 2 つのアクションがあります。これら 2 つのアクションには、同じビューを使用します。どちらのアクションでも、ビューに同じ変数が割り当てられます。add アクションでは、フォームが有効でない場合、入力変数がビューに再度渡されます。編集アクションでは、既存の値が通過します。これは私が対処したい大きな重複です。