Laravel-DDD icon indicating copy to clipboard operation
Laravel-DDD copied to clipboard

A sample applications that make domain driven design in Laravel.

Laravel5を使用してドメイン駆動設計的なアプリを作る

ルーティング - コントローラー - サービス - リポジトリ - エレクエントモデル
                  |
                ビュー  

意識したこと

  • コントローラーに処理を書かない
  • 処理はサービス内に記述
  • 値の検証はサービス内でやる
  • サービス内でリポジトリを操作する
  • データ源の処理はリポジトリ内でやる
  • リポジトリの中でエレクエントモデルを依存注入する
  • したくなかったら普通にQueryビルダーでSQL書く
  • リポジトリにはInterfaceを契約しとく

できていなこと

  • コントローラーの処理をサービスに逃しているだけなのでコントローラーの数分、サービスが増えている。
  • もう一段、抽象化してコントローラーから使うフォーム値取得、検証、DB登録(リポジトリ)をひっくるめたサービス作る必要性を感じている。
  • その場合、多少コントローラーに記述が増えるけど処理は書かないスタンスでと思っている。