Single Action Controller
__invoke()
メソッドだけを持つコントローラ
ADR
(Action Domain Controller)- MVC をサーバーサイド向けに洗練させたパターン
Single Action Controller
はA
の実装パターン- メリット
- 各クラスのアクションを1つのみにする事で、「特定の アクション でのみ必要な依存クラス」の注入が発生しなくなる
- デメリット
- URL の数だけ、クラスが増える => クラスが増える事は、責務の明確化という意味でメリットにもなる
Domain
vsModel
Domain
vsUseCase
UseCase
はDomain
の要素の1つDomain
の要素UseCase
- アプリケーション固有のビジネスルールをカプセル化したもの
Service
- DBから値を取得する処理など
// クリーンアーキテクチャ的な DI の流れ Eloquent => ORM ↓ Query / Command => 分離する事で、レコード数の増大やクエリの複雑化に伴う応答速度の低下を解消 ↓ Repository => データアクセス処理を切り出し、データストアの参照先の変更に対応 ↓ Service => DBから値を取得する処理など ↓ UseCase => ビジネスロジックをカプセル化, 実行時の振る舞いの仕様 ↓ Controller