ThinkPHP 发布 5.2 Beta2 版本——统一并精简大量用法

流年
 流年
发布于 2018年11月26日
收藏 3

ThinkPHP5.2第二个Beta测试版本发布了。这次主要改进了fetchSql方法的处理机制,统一和简化了很多查询用法。(安装和基本使用请参考这里

主要更新

改进了fetchSql的解析机制

引入了单独的Fetch类单独处理fetchSql方法,确保Query类查询方法的返回类型不受fetchSql影响。

统一和精简了查询用法

本次测试版本统一和精简了很多查询用法,让你不会再有一个查询功能多种用法的困扰,便于制定团队规范。

  • get/all查询方法统一为find/select方法;

  • 取消fetchPdo方法,返回PDO对象统一使用pdo查询方法;

  • 废弃resultset_type配置统一使用fetchCollection方法;

  • 取消readMaster方法,统一使用master方法;

  • 模型save方法不支持传入条件,统一查询和更新方法调用;

  • 取消db/model助手函数,统一使用类调用;

增加了fetchArray方法

如果使用了模型查询,现在可以通过调用fetchArray方法,查询结果将始终返回数组数据。方便一些统计图表的数据传入。

时间字段写入改用DateTime

时间字段的自动操作改用DateTime类,支持微秒级时间记录,提供更高精度的系统时间记录。

只需要设置数据表时间字段的小数位精度即可自动记录,如果需要输出微秒精度数据,设置dateTimeFormat格式即可。

模型增加schema属性

模型增加schema属性支持,用于定义对应数据表的字段及类型信息,并且支持使用PHP变量类型定义。定义了该属性后,无需使用optimize:schema即可提升查询性能,以及自动识别字段的参数绑定类型。

模型的type属性仅用于设置自动类型转换的数据表字段。

支持应用公共函数文件

多应用模式下,支持加载应用的公共函数文件。

多入口文件自动识别

如果没有在应用入口文件中指定应用名,入口文件访问的时候可以自动识别当前的应用名称。默认会取当前应用入口的文件名作为应用名。

部分方法不再支持

以下用法出于实用性或精简考虑不再支持:

  • Query类的fetchPdo方法(可以使用pdo方法替代);

  • Query类的get/all/getOrFail/allOrFail方法;

  • 模型类的save方法不再支持where参数;

  • Query类和模型类的readMaster方法,该方法在swoole下无法正常使用(需要的话手动调用master方法);

  • 模型类的setIncsetDec方法;

  • 数据库的resultset_type设置
    (需要的话调用fetchCollection方法);

  • db助手函数(使用Db类静态方法替代);

更新日志

  • 改进join方法的table参数解析

  • 废弃save方法的where参数

  • 取消模型类的setIncsetDec方法

  • 改进模型字段信息的获取

  • 取消模型和Db类的readMaster方法

  • 改进参数绑定类型获取

  • Query类增加fetchArray方法 支持模型查询返回数组类型

  • 时间字段自动写入改为使用DateTime类,支持微秒数据

  • 改进验证类 扩展验证规则的时候不检查是否require

  • 改进查询CURD方法

  • 修正模型输出

  • 改进update方法

  • 修正insertGetId方法

  • 修正getFieldType方法

  • 改进think schema 指令

  • 改进缓存和日志的路径获取

  • 删除db助手函数 修正几个助手函数

  • Builder类select方法增加第二个参数

  • 取消resultset_type设置

  • 修正动态查询方法的fetchsql处理

  • 改进多应用入口文件的自动识别

  • 修正server方法的返回类型

  • 多应用模式允许加载公共函数文件

  • 修正路由类getBind方法

  • 改进session配置参数

  • 修正资源路由

  • 改进console

  • 修正make指令

  • 改进控制器assign方法

  • 修正Cookie

  • 修正request

  • 修正console调试驱动

  • 取消Query类的get/all方法 统一使用find/select方法

  • 取消fetchPdo方法

  • 修正insertalllimit参数

  • 改进严格模式下的错误

  • 改进fetchSql方法 增加Fetch对象

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:ThinkPHP 发布 5.2 Beta2 版本——统一并精简大量用法
加载中

精彩评论

李留威
李留威
api用户认证确实很常用,建议官方框架能提供一个完整的用户认证机制
流年
流年

引用来自“大前端工程师”的评论

这个是不是官方写的,https://github.com/Leslin/thinkphp5-restfulapi ,如果不是,建议也写个类似的
不需要啥都官方来实现,这就是开源应有的生态~ 官方只负责核心维护
流年
流年

引用来自“自由PHP”的评论

我觉得我的tp5.1可以无缝升级,如果框架支持的话
所有兼容功能更新已经在5.1LTS版本中更新了的,新版的架构设计之初首先不会一味考虑兼容,否则设计的时候会有掣肘。必须有良好的代码规范 才能比较少的工作量升级,参考这篇https://blog.thinkphp.cn/834372 当然,尚未正式版,一切皆有可能

最新评论(15

Zakeear
Zakeear
db助手函数 早该取消了
自由PHP
自由PHP

引用来自“自由PHP”的评论

我觉得我的tp5.1可以无缝升级,如果框架支持的话

引用来自“流年”的评论

所有兼容功能更新已经在5.1LTS版本中更新了的,新版的架构设计之初首先不会一味考虑兼容,否则设计的时候会有掣肘。必须有良好的代码规范 才能比较少的工作量升级,参考这篇https://blog.thinkphp.cn/834372 当然,尚未正式版,一切皆有可能
我觉得重构这个活很容易让人上瘾
李留威
李留威
api用户认证确实很常用,建议官方框架能提供一个完整的用户认证机制
李留威
李留威

引用来自“大前端工程师”的评论

这个是不是官方写的,https://github.com/Leslin/thinkphp5-restfulapi ,如果不是,建议也写个类似的

引用来自“流年”的评论

不需要啥都官方来实现,这就是开源应有的生态~ 官方只负责核心维护
基于tp的用户认证确实例子很少,官方要是能简单出个类库就更好了
赤木茂
赤木茂

引用来自“自由PHP”的评论

我觉得我的tp5.1可以无缝升级,如果框架支持的话
@自由PHP 我觉得已经不可能了,两个比较大的查询接口已经改了,无缝升级不存在了
流年
流年

引用来自“大前端工程师”的评论

这个是不是官方写的,https://github.com/Leslin/thinkphp5-restfulapi ,如果不是,建议也写个类似的
不需要啥都官方来实现,这就是开源应有的生态~ 官方只负责核心维护
大前端工程师
大前端工程师
这个是不是官方写的,https://github.com/Leslin/thinkphp5-restfulapi ,如果不是,建议也写个类似的
宇润
宇润
支持
玖伍贰柒
玖伍贰柒
只要php的新闻,评论都很多
流年
流年

引用来自“自由PHP”的评论

我觉得我的tp5.1可以无缝升级,如果框架支持的话
所有兼容功能更新已经在5.1LTS版本中更新了的,新版的架构设计之初首先不会一味考虑兼容,否则设计的时候会有掣肘。必须有良好的代码规范 才能比较少的工作量升级,参考这篇https://blog.thinkphp.cn/834372 当然,尚未正式版,一切皆有可能
返回顶部
顶部