今回開発したWebサービスの特性上、1リクエストに対して1トランザクションで済ませられるのでトランザクション処理は共通のコントローラで一括して管理するようにしました。 Yii 2ではActive Recordが使えるので、モデルをActive Recordで実現するようにして、リポジトリとのやり取りを簡略化しました。そのため、エンティティとリポジトリをモデルの役割としてまとめるようにしました。 コントローラの処理 リクエストを受けたコントローラは大まかに以下の流れでリクエストを処理するようにしました。 集約のロード ビジネスロジック(サービスメソッドの実行) 集約の保存 表示データの構築 レンダリング 集約 概要 集約を導入すると次のような効果が期待できます。 トランザクション整合性が必要な属性をまとめることで管理しやすくなる 属性を集約にまとめることで属性の管理を集約間のやり取りとして簡
![PHP開発プロジェクトでドメイン駆動設計実践 - GMOインターネットグループ グループ研究開発本部](https://cdn-ak-scissors.b.st-hatena.com/image/square/7b837bc0625f4415c70733ca658dc8d766f84a82/height=288;version=1;width=512/https%3A%2F%2Fwww.gmo-jisedai.com%2Fwp-content%2Fuploads%2F2019%2F02%2Fgolden-gate-16-150x150.jpg)