ThinkPHP 6.0 RC4 版本发布,ORM 独立及日志多通道支持

栏目: 软件资讯 · 发布时间: 5年前

内容简介:RC4版本主要改进包括ORM库独立,日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并做了大量的改进和修正。 本次更新相对于RC3版本主要涉及配置文件的更新,其它调整参考更新日志的用...

RC4版本主要改进包括ORM库独立,日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并做了大量的改进和修正。

本次更新相对于RC3版本主要涉及配置文件的更新,其它调整参考更新日志的用法调整部分。

主要新特性

数据库和模型改为独立的think-orm

数据库和模型操作核心不再内置,改为统一依赖topthink/think-orm库(该类库已经包括其它的数据库驱动),用法保持一致,功能也没有任何的缺失。

此前think-orm库已经独立更新维护,但一直是同步核心的ORM,2.0版本进行了架构调整,保持独立性的同时支持框架依赖,以后数据库操作这块统一在此类库更新。

模型功能增强

对模型做了大量的功能改进,主要包括:

  • 关联类增加withFieldwithLimit方法
  • 改进模型的hasWhere方法对闭包查询条件的支持完善
  • 支持has/hasWhere的多次调用
  • 模型的has/hasWhere方法支持软删除
  • 增加远程一对一关联
  • 远程一对一和一对多支持预载入及has/hasWhere查询
  • 模型类支持序列化及缓存操作
  • 关联预载入查询支持缓存
  • 模型方法支持依赖注入
  • 模型事件改进支持系统事件系统

日志支持多通道、并统一命令行和WEB日志格式

此次更新对日志类做了较大的调整和增强,主要包括:

  • 日志增加多通道支持,可以同时或者切换写入多个通道
  • WEB和CLI的日志记录格式统一,并支持日志格式化
  • 对JSON日志格式的改进
  • 支持日志写入事件

具体用法变化可以参考之前的博客:6.0日志变化

增加Filesystem组件

Filesystem组件用以替代之前的上传类,提供了更多上传到远端的扩展库支持。

容器对象增加回调机制

容器中的对象实例化之后,引入回调机制,利用该机制可以实现诸如注解功能等相关功能。

你可以通过resolving方法注册一个全局回调

Container::getInstance()->resolving(function($instance,$container) {
    // ...
});

回调方法支持两个参数,第一个参数是容器对象实例,第二个参数是容器实例本身。

或者单独注册一个某个容器对象的回调

Container::getInstance()->resolving(\think\Cache::class,function($instance,$container) {
    // ...
});

路由注解独立为think-annotation

路由注解功能独立为think-annotation库,并且使用更加规范,支持IDE提示。

多应用模式下路由定义支持纳入应用目录

在多应用模式下,路由定义文件支持放入应用目录的route目录下。

模板根目录默认放入根目录下的view目录

模板根目录默认从应用目录下移动到根目录的view目录,如果是多应用模式的话,下面是应用子目录,如果你需要改回放入原先的应用目录下,可以在应用的template配置文件中定义view_path

'view_path'    =>    app_path('view'),

更新日志

功能改进

  • 改进路由类的配置读取
  • 改进parseLike查询
  • 改进ViewResponse类增加内容渲染输出支持
  • 增加display助手函数
  • 验证类maker方法支持注入扩展验证规则
  • 改进事件触发的对象传入
  • 改进Console/Table
  • 改进关联定义对查询构造器的支持
  • 关联类增加withFieldwithLimit方法,并取消QuerywithField方法
  • 增加延迟关联查询对withLimit的支持
  • 改进模型toArray方法
  • 改进Url生成的域名参数
  • 改进 make:command指令生成
  • 缓存有效期支持DateInterval
  • 改进Query类find方法
  • 改进json查询
  • 改进查询缓存
  • 增加filesystem组件
  • 改进跨域请求
  • 改进路由检测缓存配置
  • 改进注解路由的文件写入
  • 路由注册支持注册options请求类型
  • 改进重定向路由检测
  • 改进模型的hasWhere方法对闭包查询条件的支持完善
  • 增加time_query_rule数据库配置参数 用于自定义时间查询规则
  • 改进时间字段类型的自动识别
  • 改进redis驱动
  • 容器对象增加invoke回调机制
  • 改进多对多关联
  • 资源路由增加withModelwithValidate对各个路由设置不同的模型绑定和验证
  • 改进getLastInsID方法
  • 日志类调整 支持多通道写入
  • 改进模型输出
  • 支持单独关闭某个通道的日志写入
  • 取消部署模式下 不写入调试日志的功能 用调试级别设置单独的日志渠道来替代
  • 改进日志记录格式
  • 支持日志输出格式化
  • 改进资源路由
  • 改进命令行日志实时写入
  • 日志通道支持单独设置level配置参数
  • Log类调整优化
  • 增加paginateX查询用于大数据分页查询
  • 数据集增加firstlast方法
  • 改进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类的initconnect方法取消 并入store方法
  • cache助手函数取消初始化用法
  • cache助手函数留空返回Cache对象
  • 默认时间字段类型改为timestamp
  • 注解路由移出核心,注解相关功能使用topthink/think-annotation
  • 改进路由 取消url_convert配置参数
  • 取消route:build指令
  • 调整默认模板目录为根目录view
  • 取消默认的请求日志记录 在项目里面自己添加
  • 统一find查询必须使用查询条件
  • 扩展的service配置文件默认放到vendor目录下
  • 废除LogLevel事件
  • 取消App类的序列化方法
  • 控制台的user配置改为通过静态方法设置当前执行用户

更多内容可以参考6.0完全开发手册


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

JavaScript & jQuery

JavaScript & jQuery

David Sawyer McFarland / O Reilly / 2011-10-28 / USD 39.99

You don't need programming experience to add interactive and visual effects to your web pages with JavaScript. This Missing Manual shows you how the jQuery library makes JavaScript programming fun, ea......一起来看看 《JavaScript & jQuery》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具