初学laravel时分两种 一种是乖乖的将程序填入MVC架构中 导致controller 和 model异常的臃肿 controller对model高度依赖导致项目在壮大时难以维护. 另一种是不知道程序该写在哪一个class内 毕竟传统 php都是一页一个程序.这里整理出最适合laravel的大型架构,兼具易维护 易扩充 容易重复使用的特点。
受RoR的影响,传统的认为 MVC 就是 model
, view
, controller
:
- Model 就是数据资料库。
- Controller负责调用 model 和view。
- View 就是 HTML。
假如按照传统的MVC概念 那么如下的需求应该怎么写呢?
- 发送 短信验证码,使用外部 API。
- 使用php调用api完成业务逻辑。
- 依照需求将格式显示。
- 依需求是进行对转换的格式进行内容筛选。
- 依需求显示不同資料。
其中 1, 2属于业务逻辑,而 3, 4, 5 属于显示逻辑,若依照一般对 MVC 的定义,model 是数据资料库,而 view 又是 HTML,以上这些需求都不能写在 model 和 view,只能勉強写在 controller。
因此將大量程序写在 controller,造成 controller 的臃肿和难以维护。
Model 过于臃肿
既然逻辑写在 controller 不方便维护,那我將逻辑都写在 model 就好了?
當你将逻辑从 controller 搬到 mod