ThinkPHP V5.0.5 版本发布,祝大家新春快乐,事业有成,“鸡”祥如意^_^

官方快速入门系列教程新增了控制器从入门到精通
V5.0.5版本是年前最后一个发布版本,也是5.0系列版本的最后一个功能版本,主要改进和优化了数据库和模型部分,并修正了之前版本的一些问题。

主要调整

增加快捷查询及设置方法;
增加关联统计功能;
增加关联查询延迟预载入功能;
增加关联一对一自动写入和删除;
改进存储过程查询;
改进关联数据输出;
优化查询性能;
模型时间字段自动格式化输出;

升级指导

从`V5.0.4`升级到`V5.0.5`需要注意如下事项:

原生查询不再支持返回数据集对象。

`Connection`类的`model`方法已经更改为`getQuery`。

关联定义方法的`alias`参数已经废弃。

主要更新如下:

[请求和路由]

改进路由定义的后缀检测
Route类的rest方法支持覆盖定义
改进Request类的put和post方法对json格式参数的接收
Request类增加contentType方法
改进Route类setRule方法
改进Request类的create方法
改进路由到控制器类的方法对默认渲染模板的影响
修正Url类build方法定义路由别名后的BUG

[数据库和模型]

增加关联统计功能
增加一对一关联自动写入功能
修正聚合模型的delete方法
改进Model类的useGlobalScope方法
Model类的日期类型支持设置为类名
Query类增加data/inc/dec/exp方法用于快捷设置数据 insert和update方法参数可以为空 读取data设置数据
优化Connection的查询性能
修正Builder类的parseOrder方法
修正BelongsToMany类的attach方法
BelongsToMany类的attach方法改进 支持批量写入
改进BelongsToMany类的saveall方法 增加第三个参数 用于指定额外参数是否一致
Query类的order方法支持多次调用合并
改进count方法对group查询的支持
增加时间戳自动写入的判断
改进Model类writeTransform方法
改进Model的时间戳字段写入和读取
写入数据为对象的时候检测是否有__toString方法
改进Mysql驱动的getFields方法
改进自动时间字段的输出
like查询条件支持数组
自动时间字段的获取自动使用时间格式化
改进单个字段多次Or查询情况的查询
修正null查询的条件合并
改进Query类paginate方法第一个参数可以使用数组参数
改进数据集对象的返回,由Query类的select方法进行数据集转换,原生查询不再支持返回数据集对象
增加whereNull、whereIn等一系列快捷查询方法
fetchPdo方法调整
改进对存储过程调用的支持 改进getRealSql的调用机制 改进数据表字段使用中划线的参数绑定支持
数据库配置参数增加result_type 用于设置数据返回类型 方法参数名称调整
改进Query类的whereTime方法支持更多的时间日期表达式(默认查询条件为大于指定时间表达式)
取消min/max/sum/avg方法的参数默认值
Query类增加getPdo方法用于返回PDOStatement对象
改进today的日期表达式查询
改进关联属性的获取
改进关联定义中包含查询条件后重复执行的问题
改进参数绑定支持中文字段自动绑定
改进Builder类的insertall方法 增加对null和对象数据的处理
改进参数绑定类型 支持bit类型自动绑定
Connection类model方法更改为getQuery
优化Connection类__call方法
修正聚合模型
一对一关联预载入默认改为IN查询方式
增加collection助手函数用于数据集转换
增加load_relation助手函数用于数组的延迟预载入
改进Model类的has方法第二个参数支持使用数组和闭包,无需再使用hasWhere
relation方法支持嵌套关联查询
增加think\model\Collection作为模型的数据集查询集合对象
取消关联定义的alias参数(仅morphTo保留)
Model类的delete方法,支持没有主键的情况
Model类的allowField方法支持逗号分割的字符串
改进写入数据的自动参数绑定的参数名混淆问题
关联预载入查询的属性名默认使用小写+下划线命名
Query类的with和relation方法支持多次调用
Collection类增加hidden、visible和append方法
修正软删除的强制删除方法

[其它]

unique验证规则支持指定完整模型类 并且默认会优先检测模型类是否存在 不存在则检测数据表
改进Loader类的model、controller 和 validate方法 支持直接传入类名实例化
Session类增加安全选项
可以允许自定义Output的driver,以适应命令行模式下调用其它命令行指令
改进loader类action的参数污染问题
Validate类的confirm验证改为恒等判断
改进Validate类的错误信息处理
修正Validate类的布尔值规则验证
改进cookie助手函数对前缀的支持

[调整]

Connection类model方法更改为getQuery
原生查询不再支持返回数据集对象

[ 文档 ]

官方开发手册已经同步更新到V5.0.5版本

5.0完全开发手册 | 5.0快速入门系列 ]

[ 下载地址 ]

官网:核心包 
GitHub: https://github.com/top-think/think.git (主要维护仓库 官方核心团队)
Composer: composer create-project topthink/think tp5 --prefer-dist

[ 扩展包 ]

下面是针对ThinkPHP5的扩展包 需要使用Composer安装
应用单元测试:https://github.com/top-think/think-testing.git
验证码:https://github.com/top-think/think-captcha.git
图像处理:https://github.com/top-think/think-image.git
队列:https://github.com/top-think/think-queue.git
MongoDb支持:https://github.com/top-think/think-mongo.git
angular模板引擎:https://github.com/top-think/think-angular.git
助手库:https://github.com/top-think/think-helper.git
数据库迁移工具:https://github.com/top-think/think-migration.git
Workerman:https://github.com/top-think/think-worker.git

ThinkPHP V5.0——为API开发而设计的高性能框架


V5.0版本由七牛云独家赞助发布

ThinkPHP5.0版本是一个颠覆和重构版本,官方团队历时十月,倾注了大量的时间和精力,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)。

2017年1月23日
ThinkPHP官方团队



新闻来源:ThinkPHP V5.0.5 版本发布 — 祝大家新春快乐!