ThinkPHP6.0完全开发手册 更新日志
版本更新日志
V6.1.4(2023年7月12日)
V6.1.3(2023年5月22日)
V6.0.15(2023年5月22日)
V6.1.2(2023年2月10日)
V6.1.0(2022年10月26日)
V6.0.14LTS(2022年10月26日)
V6.0.13LTS(2022年7月15日)
V6.0.12LTS(2022年1月21日)
V6.0.11LTS(2022年1月5日)
V6.0.10LTS(2021年12月31日)
V6.0.9(2021年07月22日)
V6.0.8(2021年04月26日)
V6.0.7(2021年01月25日)
V6.0.6(2021年01月11日)
V6.0.5(2020年10月27日)
V6.0.4(2020年9月28日)
V6.0.3(2020年6月25日)
V6.0.2(2020年1月13日)
V6.0.1(2019年12月24日)
V6.0.0(2019年10月24日)
RC5(2019年10月13日)
RC4(2019年8月16日)
RC3(2019年6月3日)
RC2(2019年4月22日)
RC1(2019年2月14日)
V6.1.4(2023年7月12日)
修复PHP错误中止时,日志没有写入、中间件end回调没有执行
修正路由分组合并检测
改进文件缓存锁机制
修正php think optimize:schema指令当模型存在子目录的错误
V6.1.3(2023年5月22日)
主要改进了路由以及Session有效期。
改进ResourceRegister支持更多路由参数设置
改进资源路由注册类
改进RedirectResponse
改进跨域路由
改进自动options路由
options请求默认支持跨域
修正miss路由
完善session有效期问题
V6.0.15(2023年5月22日)
主要对PHP8.2做了兼容处理,以及支持最新的ThinkORM3.0。
兼容PHP8.2
调整url build方法
支持使用ThinkORM 3.0版本
修正session有效期问题
V6.1.2(2023年2月10日)
本版主要更新
兼容PHP8.2
移除基础类中Filesystem申明属性
fix: container绑定参数时可变参数处理
File类增加setExtension方法设置保存文件的实际后缀名
ValidateRule注释调整
Fix: 参数类型为多个时导致的报错
更新think-orm版本依赖支持3.0
V6.1.0(2022年10月26日)
本版本主要更新:
移除核心对think-filesystem库的依赖
V6.0.14LTS(2022年10月26日)
本版本主要更新如下:
删除废弃方法
优化多语言检测
修正命令行模式下的默认request
V6.0.13LTS(2022年7月15日)
本版本主要更新如下:
改进Request类filterValue方法的兼容性
更新 prettify.js 为新的 cdn 地址
FIX:remember缓存读取问题修复
优化IDE支持
Redirect remember 支持完整url设置
调整路由初始化位置
Bugfix: 修复 PSR-7 Response 用法
Fix switchLangSet missing setLangSet (#2705)
兼容 PHP 8.1
Windows环境下文件访问地址不正确
修复传空值被忽略的情况
优化 IDE 支持,忽略 zend studio 的无关文件
增加 HEAD 路由支持,可以用来做健康检测 head /health
V6.0.12LTS(2022年1月21日)
本版本主要完善了命令行对PHP8.1的支持,并增加了路由的闭包检测机制。
主要更新
改进缓存驱动unserialize方法参数类型限制
优化代码使IDE友好
修正命令行对PHP8.1的兼容性
路由增加闭包检测有效性
ThinkORM主要更新包括:
完善sqlite驱动
修正Fetch类
改进多对多关联
添加数据写入对对象值的判断处理
改进一对一关联写入
一对一关联查询绑定属性调整
改进远程一对多关联查询
优化模型数据处理
V6.0.11LTS(2022年1月5日)
修正ENV读取问题
V6.0.10LTS(2021年12月31日)
本版本主要添加了PHP8.1的兼容支持,以及ThinkORM的大量改进。
主要更新:
兼容PHP8.1
改进cookie跨域删除
改进多语言自动加载
改进url生成
Filesystem 增加url方法 获取文件访问地址
文件上传错误支持多语言
修正 make:controller 指令错误
发送cookie前先检查请求头是否已发送
改进多文件上传的文件hashName冲突问题
调整thinkPath路径赋值为真实绝对路径 以避免特殊环境潜在隐患
支持 psr7 response
控制器中间件支持动态参数
改进env文件解析
ThinkORM主要更新包括:
修正column方法
Db和模型增加filter数据处理机制
调整json处理
修正sqlite驱动lock
获取数据库字段类型不区分大小写
修正json方法
修正多对多关联中间表数据
修正多对多模型
改进db类hidden visible append 方法处理机制
改进关联的软删除查询
完善获取sql时的字符转义
V6.0.9(2021年07月22日)
本版本主要添加了事件监听的通配符支持,并修正了框架的一处可能的序列化漏洞,同时对模型做了一些改进和优化。
更新league/flysystem版本
事件监听支持通配符
支持时间字段的统一配置
改进Request类all方法
由于league/flysystem低版本存在漏洞,官方进行了安全升级,该修正使得框架的PHP版本依赖也提升到7.2+。
ThinkORM主要更新如下:
强化虚拟模型支持
改进模型事件和数据库事件
改进动态获取器处理
优化分页查询
改进聚合查询
关联增加withoutField方法
软删除destroy方法优化
V6.0.8(2021年04月26日)
本版本主要添加了多环境变量配置文件支持
增加LogRecord事件
消除Validate类某处类型声明警告
路由分组增加dispatcher方法,支持设置分组的调度
Request类增加all方法支持获取包括File在内的所有参数
改进环境变量定义支持多env文件读取
V6.0.7(2021年01月25日)
本版本主要针对上个版本做了一些路由修正,还意外收获了一些性能提升,是一个建议更新的版本。
修正Validate类的PHP8兼容性
改进redis驱动的append方法
修正路由匹配检测问题
优化路由变量正则规则生成
改进responseView的内容渲染
V6.0.6(2021年01月11日)
本版本更新为兼容PHP8.0版本,并做了一些的改进和优化。
兼容composer2生成配置文件
优化optimize:schema指令
增加socket-log 的 curl 超时设置
修正路由匹配
增加兼容PHP8处理
增加汉字识别匹配范围 支持部分生僻字正则
改进响应文件请求时的缓冲清除
资源路由支持设置变量规则
$request->ip() 方法兼容PHP8
修复验证器in、between方法,使用数组,功能异常
修正含有__make的类实例化后未执行invokeAfter的问题
修复命令行创建中间件命名空间无效 bug
V6.0.5(2020年10月27日)
本次更新为兼容Composer2.0做的特别更新版本,主要包含:
修正验证类append方法
改进缓存标签机制
改进闭包路由内使用request对象
改进文件缓存驱动
V6.0.4(2020年9月28日)
本次更新为常规更新,主要包含:
新增
[新增] 多语言支持解析json文件
[新增] 增加app.url配置 用于命令行下构建request
[新增] 模型类增加convertNameToCamel属性,支持数据格式转为驼峰命名输出
[新增] Relation类增加getForeignKey和getLocalKey方法
修正
[修正] 修复规则为空的bug
[修正] 修正请求缓存中间件
[修正] 改进验证的append方法处理造成多次验证的情况
[修正] 改进资源路由对路由到类的支持
[修正] 修正重定向路由的传参
[修正] 调整http初始化位置 防止容器绑定自身造成死循环
[修正] 改进Redis驱动select参数处理
[修正] 改进多对多关联查询
优化
[优化] 优化session文件缓存 path获取
[优化] 改进路由参数检测
[优化] 改进路由参数获取和变量检查
[优化] 路由的请求缓存可以通过request_cache_key配置参数关闭 便于开发模式
[优化] 调整路由配置载入位置
[优化] 改进路由缓存指令 取消opis/closure依赖
[优化] 改进路由的额外参数检测
[优化] 改进Config类的has方法判断
[优化] 改进参数绑定对Null值的支持
[优化] 改进when条件查询的闭包处理
[优化] 改进一对一关联查询对order排序的支持
V6.0.3(2020年6月25日)
本次更新包含一个调试模式的系统信息安全隐患修正,建议更新。
主要更新:
异常提取session数据时先判断是否使用了session
修正文件上传类
取消Event类withEvent方法
FileResponse支持是否强制下载设置
Request对象支持ArrayAccess接口
日志的时间记录增加微秒数据支持
调整 Validate场景执行优先级
优化App类getDefaultRootPath方法
修正全局中间件获取param参数的BUG
clear命令支持多层级目录
修正日志记录时区问题
修复助手函数public_path
中间件支持多个参数
路由检测严格按照路由定义的顺序执行
FileResponse增加是否强制下载文件选项
修复自定义命令别名比系统别名长导致报错问题
改进路由到视图的变量传递
允许路由到一个自定义调度类
完善路由单元测试
默认路由也支持自动OPTIONS请求
改进路由调度
改进host和port的获取支持代理
Request->port 的返回类型转化
改进模型生成模板
简化默认异常页面信息显示
数据库支持设置缓存store
改进optimize:schema指令
为清理指令添加仅删除过期文件的选项
请求缓存增加预检缓存配置 默认有效期1800秒
支持header方式自动侦测多语言
V6.0.2(2020年1月13日)
本次更新包含一个可能的Session安全隐患修正,建议更新。
主要更新:
改进设置方法后缀后的操作名获取问题
修正optimize:schema指令
修正Request类inputData处理
改进中间件方法支持传多个参数
修正sessionid检查的一处隐患
完善对15位身份证号码的校验
增加远程多对多关联支持
增加MongoDb的事务支持(mongodb版本V4.0+)
改进insertAll的replace支持
V6.0.1(2019年12月24日)
主要更新:
完善Request::withInput
修正Content-Type获取途径
改进 SocketLog 驱动
修正 ClientArg 获取途径
修复FileResponse的cookie空对象异常
支持渲染完整的异常链信息
异常页面支持折叠调用堆栈信息
改进异常响应时内容的一致性
改进Error控制器对数字访问的支持
修正redirect助手函数
memcached delete 支持 timeout
修正redis驱动
改进memcache驱动
改进容器类invokeMethod方法
使用新的数组语法替代list
缓存默认的序列化方法改为serialize/unserialize
Add Cookie SameSite(PHP>7.3)
扩展Socket驱动
修正异常页面的模板文件
事件监听去重
取消视图日志
修正验证jpg结尾的图片报错问题
改进Url生成
改进Url生成伪静态后缀设置false的情况
改进File类型session读取gzcompress问题
修复使用路由验证后路由变量丢失的问题
修正多应用下路由目录路径
修复 expand_level选项异常
改进Cache类remember方法对依赖注入的支持
防止因日志配置异常时陷入死循环
模型支持动态设置数据库连接
修正column方法的查询缓存问题
改进Query类的getAutoInc方法
改进模型更新条件获取
修正使用模型对象更改数据时忽略自定义的suffix和 connection参数
修正XA事务
规范column方法的查询
V6.0.0(2019年10月24日)
主要更新日志
mobile 验证简化
控制器中间件支持传参
增强中间件CheckRequestCache的实用性
改进容器invokeClass方法异常处理
控制器中间件过滤条件支持字符串
改进Route类getDomainBind方法
防止路由标识生成URL时生成空字符串
让中间件CheckRequestCache只访问一次临界区
完善命中判断
修正Request::port返回类型
增强高并发下session_id生成的唯一性
取消路由缓存功能及相关指令
修正 Request::remotePort 返回类型
完善跨域中间件的响应头部
改进容器异常处理
改进生成文件模板
移除build指令纳入扩展
改进Response增加cookie方法用于设置Cookie
修正生成URL不传参数时,方法名为空
修复中间件CheckRequestCache使用过期数据
修复memcache驱动inc函数重复添加前缀问题
删除Resonse类setCookie方法
使用session_create_id生成id,保证唯一性
修复中间件FormTokenCheck无法启用问题
修正halt助手函数
RC5(2019年10月13日)
RC5版本主要改进包括多应用模式独立,以及中间件机制调整。
主要新特性
多应用模式独立为扩展
中间件分组执行
增加路由配置文件的全局中间件定义
中间件支持优先级定义
中间件支持请求结束回调
中间件执行去重
模板根目录免配置自动识别
改进智能事件订阅
页面Trace独立为扩展
更新日志
修正request类isJson方法
提升swoole下多应用的性能
修正Cookie保存
改进字段缓存指令
修正路由正则生成
改进模板变量的全局赋值
改进filesystem
改进View 增加单元测试
修正php模板驱动
取消view_base配置,增加view_dir_name配置
完善Session及其单元测试
改进session助手函数支持获取所有数据
完善中间件及其单元测试
改进事件智能订阅
验证错误信息支持数组
改进多语言自动侦测
改进自动多语言
改进事件观察者支持事件前缀
去除Cache返回类型限制
多应用配置读取优先级调整
多应用路由改进
改进批量验证的错误信息返回
页面Trace中间件移除 改为扩展
改进session初始化中间件
修正默认URL访问
修正url生成对域名绑定的支持
改进中间件机制 全局、路由和控制器中间件分开
调整
获取当前应用名改为app('http')->getName()
RC4(2019年8月16日)
RC4版本主要改进包括ORM库独立,日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并作了大量的改进和修正。
主要新特性
数据库和模型改为独立的think-orm库
模型关联功能增强
日志支持多通道、并统一命令行和WEB日志格式
增加Filesystem组件
增加容器对象实例化回调机制
路由注解独立为think-annotation库
多应用模式下路由定义支持纳入应用目录
功能改进
改进路由类的配置读取
改进parseLike查询
改进ViewResponse类增加内容渲染输出支持
增加display助手函数
验证类maker方法支持注入扩展验证规则
改进事件触发的对象传入
改进Console/Table类
改进关联定义对查询构造器的支持
关联类增加withField和withLimit方法,并取消Query类withField方法
增加延迟关联查询对withLimit的支持
改进模型toArray方法
改进Url生成的域名参数
改进 make:command指令生成
缓存有效期支持DateInterval
改进Query类find方法
改进json查询
改进查询缓存
增加filesystem组件
改进跨域请求
改进路由检测缓存配置
改进注解路由的文件写入
路由注册支持注册options请求类型
改进重定向路由检测
改进模型的hasWhere方法对闭包查询条件的支持完善
增加time_query_rule数据库配置参数 用于自定义时间查询规则
改进时间字段类型的自动识别
改进redis驱动
容器对象增加invoke回调机制
改进多对多关联
资源路由增加withModel和withValidate对各个路由设置不同的模型绑定和验证
改进getLastInsID方法
日志类调整 支持多通道写入
改进模型输出
支持单独关闭某个通道的日志写入
取消部署模式下 不写入调试日志的功能 用调试级别设置单独的日志渠道来替代
改进日志记录格式
支持日志输出格式化
改进资源路由
改进命令行日志实时写入
日志通道支持单独设置level配置参数
Log类调整优化
增加paginateX查询用于大数据分页查询
数据集增加first和last方法
改进response/View类的assign方法
改进请求参数获取问题
改进pathinfo方法
增加一些路径助手函数
改进多级控制器访问
Log类支持__call方法
多应用模式的路由定义支持放入单独的应用目录
模型增加依赖注入支持
改进模型事件
改进页面Trace机制
改进validate助手函数,支持设置验证失败后是否抛出异常
改进容器bind方法
改进Redis Session驱动
改进日志记录的空行问题
改进RedirectResponse
改进缓存驱动
改进think optimize:schema 指令
Url类增加https方法
改进isPjax判断
改进Db类配置获取
问题修正
修正模型属性获取
修正Request类的过滤功能
修正subDomain方法
修正input助手函数
修正模型refresh方法
修正关联统计不使用子查询的方式
修正Request类root方法
修正缓存有效期处理
修正MorphTo关联
修正缓存标签
修正mysql驱动insert方法
修正Db类connect方法
修正allowCrossDomain方法
修正Query类chunk方法
修正分组跨域
修正关联预载入查询
修正时间字段写入
修正验证类checkSize
修正多对多关联闭包
修正RuleName类setRule方法
修正whereTime查询
修正request助手函数
修正日志关闭配置
修复对多字节字符的兼容性
用法调整
模型切换后缀方法switch更改为suffix
取消Query类的fetchArray方法
select查询方法默认返回数据集对象
取消optimize:config指令
调整数据库和缓存配置文件格式 默认采用多类型支持 方便切换
Cache类的init和connect方法取消 并入store方法
cache助手函数调整
cache助手函数取消初始化用法
cache助手函数留空返回Cache对象
调整调试模式检测位置
默认时间字段类型改为timestamp
取消Model类getConnection和setConnection方法
注解路由移出核心,注解相关功能使用topthink/think-annotation
改进路由 取消url_convert配置参数
取消route:build指令
调整默认模板目录为根目录view
取消默认的请求日志记录 在项目里面自己添加
统一find查询必须使用查询条件
扩展的service配置文件默认放到vendor目录下
废除LogLevel事件
取消App类的序列化方法
控制台的user配置改为通过静态方法设置当前执行用户
RC3(2019年6月3日)
RC3版本主要改进和优化了系统内置中间件,改进了一些用法和体验,并且把不常用的驱动移出核心改为扩展方式提供。
主要新特性
增加whereWeek日期查询
自增ID获取支持类型自动转换
当前请求记录匹配路由规则
增加requireWithout验证规则
优化路由ext和name方法以及URL生成
增加项目自定义类
URL生成使用对象方式操作
修改器改进
dump/halt助手函数调整支持输出多个变量
关联自动更新
模型数据集增加delete和update方法
模型支持表后缀以及动态切换
注解路由支持给某个路由指定所属分组
多语言支持分组定义
支持自定义加载语言文件
多语言定义支持YML格式
缓存标签改进
缓存类增加push方法
Cookie保存时间支持DateTimeInterface
增加表单令牌中间件
控制器支持__call方法
增加deny_app_list配置参数
控制器中间件only和except定义不区分大小写
app_map支持指定泛应用映射
问题修正
修正参数绑定的浮点型精度问题
修正软删除
修正模型的数据库连接
修正RedirectResponse
修正Session类flush方法
修正JSON字段参数绑定
修正make:controller指令生成
修正Cache类的get方法默认值
修正域名绑定
修正关联模型的动态获取器
修正模型dateFormat属性方法
修正url生成对多入口的支持
修正ini配置文件格式的布尔值转换问题
修正路由延迟解析全局配置无效的问题
修正路由缓存问题
修正关联update操作
修正Relation::$selfRelation默认为null,导致Relation::isSelfRelation()方法报错
修正redis缓存驱动
修正事件智能订阅observe方法
修正模型字段定义对日期查询无效的问题
修正Console类getNamespaces方法
修正where查询方法传入Query对象的时候缺少bind数据的问题
修正request类method方法
修正route:list指令
修正Collection类load方法
修正redis驱动的端口类型
修正session数据序列化使用JSON处理的问题
修正分组路由合并解析
修正模型的hidden方法隐藏关联模型的问题
修正关联查询关联键为空的错误
修正返回204状态码的响应判断
修正Request类has方法对env和session的支持
修正provider.php文件无效问题
修正关联查询的部分问题
修正validate助手函数支持指定验证器类
修正验证类getValidateType方法
修正入口单独开启调试模式
修正加载Composer应用
用法调整
页面trace中间件仅在调试模式有效
Socket日志驱动移出核心
PostgreSQL、Sqlite和SqlServer驱动移出核心
,改为扩展
取消内置think\Controller基类
Yaconf支持移出核心 纳入扩展think-yaconf
字段排除改为withoutField方法
取消useGlobalScope方法增加withoutGlobalScope方法
更改默认生成的中间件位置
加载默认语言包无需开启多语言中间件
Cookie类恢复get和has方法支持
token助手函数调整
全局请求缓存参数调整
统一中间件调用传参,不支持:分割传参
缓存数据统一进行序列化后存储
Cache类rm方法更改为delete方法
validate助手函数返回Validate对象实例,参数改变
废弃用法
取消多语言的auto_detect配置
取消session类的auto_start配置参数和boot方法
废弃Where数组对象查询
取消模型事件观察者
取消JumpResponse及success/error/result等方法和助手函数
取消表达式查询解析扩展及think\db\Expression类
废弃模型自动完成功能,使用模型事件替代
取消cookie的prefix参数
取消一系列不推荐使用的助手函数
取消optimize:facadeoptimize:model指令 改为扩展方式
取消命令行执行URL
删除Config类__get 和 __isset 方法
RC2(2019年4月22日)
相比较RC1版本更新调整较大,主要更新如下:
底层架构针对协程做优化调整
增加WEB应用管理类Http
增加应用初始化服务和服务注册机制
查询事件和模型事件使用事件系统接管
Session类重构,不再使用PHP内置会话
Cookie类仅支持设置和写入,不再支持读取
取消Config类的动态设置功能
部分核心功能中间件化(页面Trace、多语言、请求缓存和Session初始化)
取消惯例配置文件
增加驱动接口规范驱动开发
改进Db类和查询类
精简一些不必要的类库
改进路由注册
由于异常的需要View类改为内置,但默认仅支持原生PHP模板
大量细节改进和修正
RC1(2019年2月14日)
改进Url类build方法
修复获取当前页码数据类型
修正parseKey方法传入数值的情况
改进optimize:config指令对declare申明的支持
取消URL参数模式配置
增加optimize:facade指令用于生成facade类的方法注释
取消Query类的extend方法
原来的Expression类更改为Raw类
增加新的Expression类用于表达式查询扩展
Collection类增加whereLike/whereNotLike/whereIn/whereNotIn/whereBetween/whereNotBetween等快捷方法
Query类的raw方法移动到Db类
取消Request类的hook方法
修正Route::view方法
优化模型获取器方法
多对多关联的pivotDataName方法更名为name方法
Query类增加partition/duplicate/extra方法
改进mysql驱动支持分区和duplicate以及额外参数
mysql驱动的insert方法改用更清晰的insert set语法
修正Event类bind属性定义
修正验证类的append一处bug
改进Query类update方法支持读取模型的更新条件
取消模型类的getUpdateWhere方法统一使用getWhere方法
改进query类的fetchArray方法处理
改进路由类取消app属性
增加think\facade\RuleName类
增加whereFieldRaw查询方法
改进自动多应用名称获取
App类增加withEvent方法支持关闭事件机制
改进Dispatch类对var_dump的支持
改进hasMany的withCount自关联
修正纯数字检测参数类型转换问题
修正raw助手函数
mysql支持find_in_set查询
改进url方法对自动多应用的支持