前言
由于官方推荐的MVC架构在项目功能比较多的时候会导致controller层非常臃肿,不容易将代码复用,难以维护。所以现在很多程序员都喜欢将controller层拆分为controller、service、repository、model这几层甚至更多层次的目录进行开发,更容易复用代码。
- 控制器层(Controller):负责接收参数、验证参数、调用各个模块的服务层(可以用事务包裹,用到其他服务的可以注入多个服务)、返回响应、返回视图等
- 服务层(Service):负责具体的业务逻辑实现,将原本控制器的负责流程按模块拆分为一个个小的服务,方便给控制器层组合调用,一般不要跨模块调用服务,服务中可以调用本模块的仓库层方法
- 仓库层(Repository):调用模型层封装一些负责的查询,方便服务层调用,一般负责只查询本模块的内容
- 模型层(Model):只包含默认的表属性(表名、字段等)和联表关系
这是我开发的一个thinkphp框架命令行创建Repository和Transform Class(即仓库层和转化器,基于controller-service-repository目录架构)的扩展包
如何使用
-
1.安装扩展
thinkphp5.*装1.0.1版本
composer require jian1098/tp-repository:1.0.1
thinkphp6以上装2.0.1版本
composer require jian1098/tp-repository:2.0.1
-
2.注册命令
-
thinkphp5.*
在
application/command.php
文件中添加两行return [ 'Jian1098\TpRepository\Command\Repository', 'Jian1098\TpRepository\Command\Transform', 'Jian1098\TpRepository\Command\Model', //如果是tp5.0框架,需要make:model命令可以增加这一行实现 ];
-
thinkphp6+
在
config/console.php
文件中添加两行return [ // 指令定义 'commands' => [ 'Jian1098\TpRepository\Command\Repository'
-