ThinkPHP V5.0——为API开发而设计的高性能框架
ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了很多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,并针对API开发做了大量的优化。
新版主要功能特性如下:
(目前尚处于Beta版本,仅供学习参考,请谨慎用于项目)
由于版本库更新较多,很多内容文档可能不一定会及时更新,请谅解,正式版发布后文档才会趋于完善。
[ 底层架构 ]
- 真正的惰性加载
- 核心类库组件化
- 框架引导文件
- 采用Traits扩展
- API友好(输出、异常和调试)
- 文件命名规范调整
- 单一模块设计支持
- 路由完美重构
- 任意级控制器访问支持
- 更高的目录部署自由度
[ 调试和异常 ]
- 专为API开发而设计的输出、调试和异常处理
- 日志类支持本地文件/SAE/页面Trace/SocketLog输出,可以实现远程浏览器插件调试
- 内置trace方法直接远程调试
- 异常预警通知驱动设计
- 数据库SQL性能分析支持
[ 路由 ]
- 支持路由定义文件和静态方法注册路由规则
- 自定义路由检测方法
- 路由分组功能支持
- 规则路由中的变量支持采用正则规则定义(包括全局和局部)
- 闭包支持
- 资源路由支持
- 支持路由到多层控制器
- 支持路由的URL反转生成
- 支持路由到类的方法(包括静态类)
- 支持路由到控制器的操作方法
- 支持多级和泛域名绑定
[ 控制器 ]
- 控制器类无需继承controller类
- 灵活的多层控制器支持
- 可以Traits引入高级控制器功能
- 控制器rest/yar/rpc/hprose/jsonrpc扩展
- 统一前置操作方法,支持排除和指定操作
- 控制器操作方法统一return设计
[ 模型 ]
- 简化的核心模型
- Traits引入高级模型/视图模型/关联模型
- 主从分布时候主数据库读操作支持
- 改进的join方法和order方法
[ 视图 ]
- 视图解析驱动设计(模板引擎)
- 所有方法不再直接输出而是返回交由系统统一输出处理
- 动态切换模板主题设计
- 动态切换模板引擎设计
[ 模板引擎 ]
- 重构的模板引擎,保留原有用法之上增加功能
[ 数据库 ]
- 完全基于PDO实现
- 简化的数据库驱动设计
[ 其他方面 ]
- 目录和MVC文件自动生成支持
- I函数默认添加变量修饰符为/s
- 一个行为类里面支持为多个标签位定义不同的方法
- 更多的社交扩展类库
在RC版本发布之前,ThinkPHP5仍然可能存在功能变化。
相对于3.2版本,废除了如下功能:
- 编译缓存
- LITE文件
- 正则路由规则定义
- 操作参数绑定不支持按顺序绑定参数
- F函数(改由lite缓存驱动实现)
计划支持的功能包括:
- 单元测试支持;(已经支持)
- 命令行工具集;(已经支持)
- 队列;(待支持)
由于ThinkPHP5设计之初并未考虑兼容旧版本升级,因此如果从3.2版本升级将会有不少的问题需要注意,在正式版发布之前官方会尽量给出一份升级指南文档。