点击右上方,关注开源中国OSC头条号,获取最新技术资讯
ThinkPHP 5.2第二个Beta测试版本发布了。这次主要改进了fetchSql方法的处理机制,统一和简化了很多查询用法。
主要更新
改进了fetchSql的解析机制
引入了单独的Fetch类单独处理fetchSql方法,确保 Query 类查询方法的返回类型不受fetchSql影响。
统一和精简了查询用法
本次测试版本统一和精简了很多查询用法,让你不会再有一个查询功能多种用法的困扰,便于制定团队规范。
- get/all查询方法统一为find/select方法;
- 取消fetch pdo 方法,返回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方法);
- 模型类的setInc和setDec方法;
- 数据库的resultset_type设置
- (需要的话调用fetchCollection方法);
- db助手函数(使用Db类静态方法替代);
更新日志
- 改进join方法的table参数解析
- 废弃save方法的where参数
- 取消模型类的setInc和setDec方法
- 改进模型字段信息的获取
- 取消模型和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方法
- 修正insertall的limit参数
- 改进严格模式下的错误
- 改进fetchSql方法 增加Fetch对象
点击下方“ 了解更多 ”,获取软件下载地址。
↓↓↓