laravel的中大型架构

孤独到死是一个天才最好的归宿,毕竟,这个世界配不上他

中大型架构

解决我们的控制器,模型过于肥大的问题
那么我们应该怎么写呢?别将我们的思维局限在 MVC 內 :

  • Model : 被当成 Eloquent class。
  • Repository : 辅助 model,处理资料库逻辑,然后注入到 service。
  • Service : 辅助 controller,处理商业逻辑,然后注入到 controller。
  • Controller : 接收 HTTP request,调用其他 service。
  • Presenter : 处理展示逻辑,然后注入到 view。
  • View : 使用 blade 将资料 binding 到 HTML。

实现结果

我们可以发现 MVC 架构还在,由于 SOLID 的单一职责原则与依赖翻转原则 :

我们将资料库逻辑从 model 分离出来,由 repository 辅助 model,将 model 依赖注入进 repository。
我们将商业逻辑从 controller 分离出来,由 service 辅助 controller,将 service 依赖注入进 controller。
我们将演示逻辑从 view 分离出来,由 presenter 辅助 view,将 presenter 依赖注入进 view。

忠告

  1. 别害怕建立目录
  2. 文件单一职责原则
  3. 在 app 目录下建立 Repositories,Services , Presenters 目錄。

详细链接

  1. 如何使用Repository模式
  2. 如何使用Presenter模式
  3. 如何使用Service模式
  4. laravel的中大型架构

http://oomusou.io/laravel/laravel-architecture