企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# ThinkPHP6 架构 ***** ### 一、单应用模式 * 项目访问路径:[www.xxx.com/index.php/index/index](http://www.xxx.com/index.php/index/index) >[success] index.php 入口文件 > index 控制器 > index 操作 ```php ├─app 应用目录 │ ├─controller 控制器目录 │ ├─model 模型目录 │ ├─view 视图目录 │ └─ ... 更多类库目录 │ ├─public WEB目录(对外访问目录) │ ├─index.php 入口文件 │ └─.htaccess 用于apache的重写 │ ├─config 应用配置目录 │ ├─index 应用配置 │ ├─route 路由定义目录 │ ├─index 应用路由定义 │ ├─runtime 运行时目录 │ ├─index 应用运行时 ``` ***** ### 二、多应用模式 * 项目访问路径:[www.xxx.com/index.php/index/index/index](http://www.xxx.com/index.php/index/index/index) >[success] index.php 入口文件 > index 项目 > index 控制器 > index 操作 ```php ├─app 应用目录 │ ├─index 主应用 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─admin 后台应用 │ │ ├─controller 控制器目录 │ │ ├─model 模型目录 │ │ ├─view 视图目录 │ │ ├─config 配置目录(优先) │ │ └─ ... 更多类库目录 │ ├─public WEB目录(对外访问目录) │ ├─admin.php 后台入口文件 │ ├─index.php 入口文件 │ └─.htaccess 用于apache的重写 │ ├─config 应用配置目录 │ ├─index index应用配置 │ └─admin admin应用配置 │ ├─route 路由定义目录 │ ├─index index应用路由定义目录 │ └─admin admin应用路由定义目录 │ ├─runtime 运行时目录 │ ├─index index应用运行时目录 │ └─admin admin应用运行时目录 ``` ***** ### 三、入口文件 * 入口文件统一在 `public` 目录下 >[danger] public/index.php 是ThinkPHP框架入口文件,访问地址:[www.xxx.com/index.php](http://www.xxx.com/index.php) * 需要多入口,在 `public` 目录下创建 `admins.php` 文件 >[danger] public/admins.php 入口文件,访问地址:[www.xxx.com/admins.php](http://www.xxx.com/admins.php) ***** ### 四、MVC * `MVC` 一种软件架构模式 * 软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) * `ThinkPHP` 是一个典型的 `MVC` 架构 >[success] 控制器 - 负责转发请求,对请求进行处理。 > 视图 - 界面设计人员进行图形界面设计。 > 模型 - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 ![](mvc.jpg) ***** ### 五、调试模式 * `ThinkPHP` 有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得 >[danger] .env文件 ```php // 设置开启调试模式 APP_DEBUG = true ``` ***** ### 六、Trace调试 * `Trace` 调试功能就是ThinkPHP提供给开发人员的一个用于开发调试的辅助工具。可以实时显示当前页面或者请求的请求信息、运行情况、SQL执行、错误信息和调试信息等,并支持自定义显示,并且支持没有页面输出的操作调试。 * 页面Trace功能仅在调试模式下有效 >[danger] 开启 `Trace` 调试 ```php // 全局中间件定义文件中添加 think\middleware\TraceDebug ```