掌握聚合最新动态了解行业最新趋势
API接口,开发服务,免费咨询服务

ThinkPHP V5.0.4 版本发布——喜迎双“旦”

喜迎双旦,ThinkPHP V5.0.4版本发布^_^

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

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

官方快速入门系列教程 新增了控制器从入门到精通

V5.0.4版本比5.0.3更稳定和规范,并增加了一些新的特性。

主要调整

  • 关联模型重构并增加多态一对多关联;
    数据库支持一个字段多次调用不同查询条件;
    增加数据库CURD事件支持;
    路由到类和控制器的方法支持传入额外参数;
    支持全局模板变量赋值;
    模型支持独立设置查询数据集对象;
    日志针对命令行及调试做出改进;
    改进Hook类的行为方法调用;

升级指导

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

模型的关联定义方法必须采用驼峰法(小写字母打头)命名规范,但关联调用可以支持驼峰和小写方式。

行为类的方法必须使用驼峰法命名,如果你使用了钩子位作为行为执行方法入口,请修改为驼峰法,例如 `app_init`钩子位对应的行为方法名应该是 `appInit`。

如果你使用了Query类的`fetchClass`方法自定义数据集返回对象的话,请改为在模型中设置`resultSetType`属性,数据库类不再支持自定义查询数据集对象(只支持数组和系统的`think\Collection`数据集对象)

主要更新如下:

[请求和路由]

  • 请求缓存支持模块单独开启
    Request类post方法支持获取json方式的请求数据
    路由到类的方法和控制器方法 支持传入额外参数,用于方法的参数
    改进控制器自动搜索的目录规范
    改进请求缓存
    改进自动参数绑定
    修正路由的请求缓存设置
    改进Route类name方法

[数据库和模型]

  • 增加数据库查询(CURD)事件
    改进多表更新的字段不存在问题
    改进Model类的useGlobalScope方法
    修正子查询作为表名查询的问题
    Model类增加resultSetType属性 用于指定模型查询的数据集对象(默认为空返回数组)
    Model类增加toCollection方法(自动调用)
    关联模型架构调整
    改进预载入with方法的参数支持小写和下划线定义
    修正关联多对多一处错误
    改进关联多对多的查询
    关联模型支持多态一对多关联
    预载入关联查询支持关联对象属性绑定到当前模型
    支持追加关联对象的属性到当前模型数据
    一对一关联预载入支持JOIN和IN两种方式(默认为JOIN)
    改进多对多查询
    改进模型更新的数据变化比较规则
    查询支持一个字段多次查询条件
    改进sql日志的sql语句
    修正join自身表的别名覆盖问题
    模型类的connection属性和数据库默认配置合并
    改进in和between查询条件的自动参数绑定
    改进Query类对数据集对象以及关联字段排序的支持
    增加模型的快捷事件方法
    改进Query类的getTableInfo方法缓存读取
    model类的saveAll方法支持调用allowField方法进行字段过滤
    修正关联查询的时候 whereTime方法的bug
    改进Query类的聚合查询
    table方法支持字符串方式的子查询
    修正count avg方法使用fetchsql无法正确返回sql的问题

[其它]

  • 改进命令行下的日志记录
    部署模式下简化日志记录
    增加debug日志类型 仅限调试模式记录
    改进Template类parseTemplateFile方法
    改进Validate类的getRuleMsg方法
    控制器的error方法在AJAX请求默认返回url为空
    Validate类架构方法增加field参数 用于设置验证字段的描述
    改进App类invokeMethod方法对架构函数依赖注入的支持
    增加RedirectResponse的restore方法返回值
    View类增加share静态方法 用于静态赋值模板变量
    验证类增加hasScene方法判断是否存在某个场景的验证配置
    修正redis和session驱动的destroy方法返回值
    空操作方法的参数传入去掉操作方法后缀
    在控制器中调用request和view增加类型提示
    改进input助手函数支持多维数据获取
    Cache类增加pull和remember方法
    改进验证类的confirm验证规则 支持自动规则识别
    改进验证类的错误信息定义
    增加Validate类自定义验证错误信息的替换规则
    Cookie类增加forever方法用于永久保存
    模板渲染支持从视图根目录读取模板
    改进Hook类的exec方法

[调整]

  • Db类查询不再支持设置自定义数据集对象
    废除Query类的fetchClass方法
    控制器的error方法在AJAX请求默认返回的url为空
    关联方法定义不支持使用小写下划线,必须使用驼峰法
    行为类的方法必须使用驼峰法命名

    [ 文档 ]

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

5.0完全开发手册 | 5.0快速入门 | 5.0路由完全指南 | 5.0控制器从入门到精通]

[ 下载地址 ]

官网:核心包 

GitHub: https://github.com/top-think/think.git (主要维护仓库 官方核心团队)

应用项目:https://git.oschina.net/liu21st/thinkphp5.git
核心框架:https://git.oschina.net/liu21st/framework.git

Composer: composer create-project topthink/think tp5 --prefer-dist

[ 扩展包 ]

通过支付宝捐赠支持我们:

2016年12月20日
ThinkPHP官方团队

原文来自:开源中国社区

声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com

  • 航班订票查询

    通过出发地、目的地、出发日期等信息查询航班信息。

    通过出发地、目的地、出发日期等信息查询航班信息。

  • 火车订票查询

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

    通过站到站查询火车班次时刻表等信息,同时已集成至聚合MCP Server。火车票订票MCP不仅能赋予你的Agent火车时刻查询,还能支持在线订票能力。

  • 车辆过户信息查询

    通过车辆vin码查询车辆的过户次数等相关信息

    通过车辆vin码查询车辆的过户次数等相关信息

  • 银行卡五元素校验

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

    验证银行卡、身份证、姓名、手机号是否一致并返回账户类型

  • 高风险人群查询

    查询个人是否存在高风险行为

    查询个人是否存在高风险行为

0512-88869195
数 据 驱 动 未 来
Data Drives The Future