ThinkPHP V8.1
版本是一个大的改进版本,针对V8.0
版本的一些不足进行了大量的完善,包含路由和验证方面的众多新特性,并提供对PHP枚举类的更好支持,同时兼容最新的PHP8.4
版本。
V8.1.0主要更新(新特性说明)
-
修复路由使用数组方式报错问题
-
改进验证场景处理
-
路由分组支持默认URL调度和绑定,并且不受强制路由影响
-
自动URL调度功能,支持多模块
-
资源路由支持扩展路由定义
-
支持多模块自动路由规则,并自动执行模块中间件
-
路由新增
when
路由变量验证方法 -
增加枚举类型验证
-
改进数组验证支持指定键名和支持多维数组验证
-
增加路由预定义变量规则 当变量规则为整数或浮点数的时候 自动转换类型
-
路由配置增加
action_bind_param
参数 设置操作方法的参数绑定方式 -
改成系统初始化阶段的异常处理
-
配置增加获取器功能
-
优化异常处理对
json
的判断 -
改进环境变量文件读取 支持公共环境变量文件
-
Validate
增加accepted
、acceptedIf
、declined
、declinedIf
、multipleOf
内置规则 -
cookie
设置可以在当前请求生效 -
改进日志备份文件名规则
-
增加
withoutmiddleware
方法用于排除某个路由的中间件 -
优化路由调度
-
改进缓存反序列化的异常处理
-
改进验证异常类 增加
getKey
方法 获取错误字段名 -
改进依赖注入的对象默认值判断
-
调整
invokeAfter
位置 -
Request
only
方法支持强制类型转换 -
优化验证类的验证规则判断
-
验证类支持使用
must
属性设置该验证类的必须验证字段 无论是否定义require
规则 -
缓存增加
fail_delete
配置参数 用于在获取缓存发生异常的时候是否强制删除 -
缓存get方法
default
参数支持传入闭包 -
改进缓存
pull
方法判断,并增加default
参数 -
优化智能事件订阅,提高事件响应效率
-
增加
Macroable
方法注入功能 -
改进缓存
serialize
/unserialize
方法 -
兼容PHP
8.4
ThinkORM方面也做了大量更新,具体可以参考ORM更新记录
官方手册
官方文档 http://doc.thinkphp.cn 内容已经添加了8.1版本的支持
还可以通过ThinkPHP知识库 了解更多的使用技巧
官方服务
ThinkPHP
官方生态服务由顶想云(TOPThink Cloud
)提供,为生态提供专业的贴心服务和价值之选,提供企业一站式数智化服务。
官方AI智能体服务ThinkChat和ThinkBot私有化部署服务上架宝塔Docker应用商店,支持宝塔一键部署。
ThinkPHP官方专家智能体,基于官方手册进行了一系列的数据训练和提示词设置优化,而且支持联网查询,可以为TP开发者提供更智能和更精准的问题解答和建议,比自己查手册更快,而且比较容易得到有效的答案,希望能帮到广大ThinkPHP开发者。直达链接
希望下个版本能在注解上面有更多惊喜。目前路由规则要写到路由文件,校验规则要写到校验文件,文件切来切去的,开发和维护都有点麻烦,希望这两项配置可以融合到控制器的注解中,这样就能在控制器文件中直接配置注解路由和注解校验,开发起来更高效,维护起来更简单。
现在是有注解路由了,但是需要另外安装 think-annotation 扩展,希望注解路由直接集成到框架,开箱即用。
期望的控制器代码大概就这样子,这样就不用在控制器文件、校验文件和路由文件中来回查找切换了。规则配置类的内容,都用注解来处理,开发起来就更敏捷了。
#[Validate('page', 'number')]
#[Validate('info.*.email', 'email')]
#[Route("GET", "/index")]
function index(Request $request){ }
个人想法,也不知道好不好实现,给作者添麻烦了,感谢作者提供这么好的国产 PHP 快速开发框架!