VEITOOL 框架开发文档(TP版)
官方文档
官网
登录
关于框架
免责声明
开发规范
安装部署
目录结构
配置信息
后端开发
前端开发
系统常量
基础配置
依赖框架
构建命令
基础模块
控制器类
权限控制
全局函数
常用方法
单页模式
主框组件
构建组件
搜索渲染
数据字典
VEITOOL文档系统
控制器类
> 关于`ThinkPHP6`的请求流程请参照 [HTTP请求流程](https://www.kancloud.cn/manual/thinkphp6_0/1075414){target=_blank} / `ThinkPHP8`的请求流程请参照 [HTTP请求流程](https://doc.thinkphp.cn/v8_0/request_flow.html){target=_blank} ## 执行流程 1. 通过中间件配置文件:`\app\middleware.php` 设置执行中间件; 2. 执行中间件文件:`\app\AppInit.php`,该中间件的功能是判别是否为插件应用; 3. 执行基类控制器:`\app\BaseController.php`,定义了些常用基类方法,方便常规控制器调用和重写覆盖(部分); 4. 执行后台应用基类控制器:`\app\admin\controller\AdminBase.php`,该控制器继承了基类控制器,通过方法重新覆盖,实现了登录判断、载入角色权限、权限判断以及日志记录等方法(权限控制并非以中间件形式实现); ## 架构设计 系统采用多应用模式,默认有后台应用`admin`、接口应用`api`、前台应用`index`(空应用,预留用于扩展)三大应用。 > 每应用中的控制器均需继承基础`abstract`抽象类控制器:`app/BaseController.php`。 > 后台应用`admin`下所有控制器均需继承后台基础`abstract`抽象类控制器:`app/admin/controller/AdminBase.php`,该基础抽象类控制器实现了后台管理员登录判断、权限控制以及日志记录和在线处理等功能。 > 模型统一放置于`app/model`目录下,每模型均需继承模型基类`app/model/Base.php`。系统基础模型均放置于`app/model/system`目录下。 ### 后台控制器继承 ``` php namespace app\admin\controller; use app\admin\controller\AdminBase; class Index extends AdminBase { public function index() { //业务逻辑 } ... } ``` ### 普通控制器继承 ``` php namespace app\index\controller; use app\BaseController; class Index extends BaseController { public function index() { //业务逻辑 } ... } ``` ### 后台视图与数据 后台视图为基于`Layui`前端框架、单页异步局部加载设计,有效减少了`js`、`css`等静态资源重复加载。视图模板并非直接请求服务端模板文件,实际上仍是通过了`ThinkPHP`入口(有经过模板引擎解析)获得的。这样设计有两个目的:1. 为了服务端能灵活处理模板;2. 为了防止静态模板可直接被下载。 >后台应用视图与数据的请求规范,为开发便捷,大部分采用同方法名中带参数`$do`进行区分获取(当然也可以采用`api`进行数据获取),这样设计有利于`路由权限`能同时控制视图与数据请求。 ``` php namespace app\admin\controller; use app\admin\controller\AdminBase; use app\model\User; class Index extends AdminBase { // 这里通过参数 $do 来进行区分获取 视图 和 json 数据 public function index($do='') { if($do=='json'){ // 获取 json 数据 return $this->returnMsg((new User())->listQuery()); } // 调用视图 $this->assign('limit', 10); return $this->fetch(); } ``` ## 快速生成 如果你是新手,对 ThinkPHP6、ThinkPHP8 还不是很了解,或不想自己去组织这些代码,可以安装平台提供的`构建插件`进行快速生成。 1. 开发工具中的命令行构建:
《构建命令》
2. 【插件】简单的命令方式快速构建生成:[Veitool框架命令构建器](https://www.veitool.com/addon/build){target=_blank} 3. 【插件】可配置字段形式快速构建生成,配置丰富:[Veitool模块在线快速构建器](https://www.veitool.com/addon/vtool){target=_blank} > 通过插件快速生成的控制器类、模型类以及视图文件,可以大大减少手动输入重复的代码和组织文件,以提供效率,同时也具有参考学习的作用:生成的代码均是经过优化的标准范式。