ThinkPHP 6.0(TP6)是基于精简核心和统一用法两大原则迭代版本
TP6的设计哲学是为 API 开发而生,同时兼顾了传统的 Web 开发。
- 强类型支持:全面采用 PHP 7 强类型约束(严格模式),不仅提升了代码的健壮性,也方便了 IDE 的自动补全。
- 多应用模式支持:原生支持单应用和多应用模式,非常适合大型项目的模块化管理(如
admin、api、index分离)。 - 引入 PSR 规范:遵循 PSR-2 编码规范、PSR-4 自动加载、PSR-3 日志规范以及 PSR-11 容器规范。
- 中间件强化:TP6 的中间件机制更加成熟,内部功能(如 Session、多语言、请求缓存)全部“中间件化”。
- 组件独立化:ORM(数据库对象关系映射)、模板引擎等核心组件被剥离出来,可以独立于框架运行。
- **服务容器与门面 (Facade)**:依赖注入(DI)和容器(Container)成为了框架的灵魂,解耦能力极强。
架构设计深度解析
TP6 采用了微内核 + 服务驱动的架构模型。
1. 请求生命周期
一个典型的请求流程如下:
- 入口文件:
public/index.php接收请求。 - HTTP 初始化:加载环境变量、配置文件,初始化服务容器。
- 路由解析:匹配对应的控制器和操作。
- 中间件执行:按序经过全局中间件、路由中间件、控制器中间件。
- 业务逻辑:控制器调用模型(Model)或服务层(Service)处理数据。
- 响应输出:由
Response对象统一格式化(HTML/JSON)并输出。
2. 核心架构组件
| 组件名称 | 作用说明 |
|---|---|
| 容器 (Container) | 对象的大管家,负责对象的实例化和依赖管理。 |
| 服务 (Service) | 系统的扩展基石,用于注册各种第三方库或自定义组件。 |
| 门面 (Facade) | 为容器中的类提供一个静态调用接口,简化调用逻辑。 |
| 事件 (Event) | 观察者模式的实现,用于解耦业务逻辑(如注册后发送邮件)。 |
如何快速上手使用
1. 环境准备
- PHP 版本:至少需要 PHP 7.2.5+。
- 管理工具:必须使用 Composer(TP6 不再提供全量下载包)。
2. 安装与运行
1 | # 安装最新稳定版 |
浏览器访问
http://localhost:8000即可看到欢迎页面。
TP6 目录结构一览
理解目录结构是掌握架构的第一步:
- **
app/**:核心应用目录(控制器、模型、服务等都在这里)。 - **
config/**:项目配置文件。 public/:Web 根目录(放置入口文件及静态资源)。- **
route/**:路由定义目录。 runtime/:运行时生成的缓存、日志文件。- **
vendor/**:Composer 第三方类库(禁止手动修改)。