ThinkPHP6.0快速开发手册(案例版) / 框架更新日志记录

框架更新日志记录

框架更新日志记录



版本更新日志

6.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方法对自动多应用的支持