ThinkPHP是什么(从能跑到能长期跑)
ThinkPHP 是一个以 MVC + 约定优于配置 为核心的 PHP Web 框架,强调开发效率与清晰结构。
- 主流版本是 ThinkPHP 5.x / 6.x,6.x 更偏向现代化(PSR 规范、依赖注入、强类型)
- 它并不追求“全栈宇宙”,而是给你一套可控、透明、可裁剪的工程骨架。
top-think php
核心运行模型
- HTTP 请求进入入口文件
public/index.php(请求收口) - 框架初始化(容器、配置、路由)
- 路由解析 → 定位 Controller@Action
- 中间件链路处理
- Controller 执行业务逻辑
- 返回 Response(JSON / HTML)
flowchart LR
A[HTTP Request] --> B[index.php]
B --> C[框架初始化]
C --> D[路由解析]
D --> E[中间件]
E --> F[Controller Action]
F --> G[Response]
MVC 结构
1 Model
- 负责 数据访问 + 领域规则
- 不推荐堆业务判断(否则会变成“肥模型”)
2 Controller
- 负责 请求编排
- 最佳实践:薄 Controller,只做参数校验与调度
3 Service
- 复杂业务逻辑应沉到 Service
- Controller → Service → Model,是生产级结构
flowchart TD
C[Controller] --> S[Service]
S --> M[Model]
M --> DB[(Database)]
路由机制
1 支持方式
- 注解路由
- 配置路由
- RESTful 资源路由
2 高并发下的关键点
- 路由缓存(生产环境必须开)
- 避免正则型“万能路由”
3 常见坑
- 404 不是 PHP-FPM 的错,是路由没命中
- “controller not exists” ≠ 文件不存在,可能是命名空间不对
ThinkPHP的现实定位
1 优势
- 上手快,代码直观
- 国内部署经验多,资料密集
- 对传统 PHP-FPM / Nginx 友好
2 劣势
- 默认配置偏“开发态”
- 需要你主动做工程治理(日志、异常、规范)
3 适合场景
- API 服务
- 中后台系统
- 存量系统持续演进