アプリケーション構造の「ベスト プラクティス」についていくつか質問があります。私はスキニー モデルを利用し、データベースのやり取りのほとんど (すべて) を行うサービス レイヤーを用意しています。モデルは、データベース トランザクションが必要なときにサービス レイヤーを呼び出します。
また、フォーム、モデル、およびサービス層クラスを返すことができるファクトリ クラスもあります。このファクトリ クラスは、非常に単純な DBAL として機能し、サービス レイヤーで使用される「検索」クラスも返す場合があります。
この検索クラスには、getAll() や getById() などのヘルパー メソッドがあります。
アプリケーションのどの部分が検索クラスにアクセスできるかについて、少し混乱しています。現在、私のモデルは静的ファクトリを使用して、ID でエンティティを取得する必要があるときに検索クラスを構築しています。代わりに、モデルがサービス層を呼び出してこの呼び出しを行う必要があるため、ファクトリ クラスを使用して検索を返す必要がなくなりますか?
アプリケーションの複数の部分からデータベースにアクセスできる可能性があるという考えは気に入らないと思いますが、実際にはすべてが最初にサービスレイヤーを通過する必要がある場合です。
ヒントとフィードバックは大歓迎です!