私はCakePHPを調査しようとするJavaプログラマーです。現在、アプリケーションの構造/設計に問題があります。アプリケーションのコアロジックをどこに置くべきか理解できませんでした。
JavaEEで開発している場合、一般的なアプローチは次のようになります。
モデルクラスは、データエンティティ(製品、人など)を表す単純なBeanです。ほとんどの場合、ゲッター/セッターを使用したデータ構造に似ています。
コントローラクラスは、必要なデータを集約し、それらを専用のビューテンプレートに挿入してユーザーに送信する、十分に単純なクラスです。
DAO(DataAccessObject)またはリポジトリクラスは、エンティティをデータベースにロードおよび格納できるクラスです。
サービスクラスは通常、特定のビジネスロジックメソッドを含むシングルトンです。これらは、コントローラー、他のサービス、またはスケジュールされたアクションによって呼び出されますが、データをフェッチまたは変更するためにDAO/リポジトリメソッドを呼び出します。
たとえば、エンティティPerson
がProduct
ありOrder
、ユーザーが商品を選択して[カート/バスケットに入れる]をクリックすると、new Order
これPerson
が作成され、これProduct
に追加される必要があります(これは、不良債務者ではなく、存在Order
することを確認できます)。店舗などで)-この作業はすべて、何らかのコントローラーによって呼び出されるメソッドで実行されます。Person
Product
OrderService
通常、すべてのサービスとコントローラーが必要なサービスなどにリンクできるように、ある種のIOC(制御の反転)が使用されます。
今、私はこれがすべてCakePHPでどのように行われるかについて少し戸惑っています。このビジネスロジックなどはどこに置くべきですか?