ThinkPHP 6.0 RC4 版本发布,ORM 独立及日志多通道支持
RC4
版本主要改进包括ORM
库独立,日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并做了大量的改进和修正。
本次更新相对于
RC3
版本主要涉及配置文件的更新,其它调整参考更新日志的用法调整部分。
主要新特性
数据库和模型改为独立的think-orm
库
数据库和模型操作核心不再内置,改为统一依赖topthink/think-orm
库(该类库已经包括其它的数据库驱动),用法保持一致,功能也没有任何的缺失。
此前think-orm
库已经独立更新维护,但一直是同步核心的ORM,2.0
版本进行了架构调整,保持独立性的同时支持框架依赖,以后数据库操作这块统一在此类库更新。
模型功能增强
对模型做了大量的功能改进,主要包括:
- 关联类增加
withField
和withLimit
方法 - 改进模型的
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
类 - 改进关联定义对查询构造器的支持
- 关联类增加
withField
和withLimit
方法,并取消Query
类withField
方法 - 增加延迟关联查询对
withLimit
的支持 - 改进模型
toArray
方法 - 改进Url生成的域名参数
- 改进
make:command
指令生成 - 缓存有效期支持
DateInterval
- 改进Query类find方法
- 改进
json
查询 - 改进查询缓存
- 增加
filesystem
组件 - 改进跨域请求
- 改进路由检测缓存配置
- 改进注解路由的文件写入
- 路由注册支持注册
options
请求类型 - 改进重定向路由检测
- 改进模型的
hasWhere
方法对闭包查询条件的支持完善 - 增加
time_query_rule
数据库配置参数 用于自定义时间查询规则 - 改进时间字段类型的自动识别
- 改进
redis
驱动 - 容器对象增加
invoke
回调机制 - 改进多对多关联
- 资源路由增加
withModel
和withValidate
对各个路由设置不同的模型绑定和验证 - 改进
getLastInsID
方法 - 日志类调整 支持多通道写入
- 改进模型输出
- 支持单独关闭某个通道的日志写入
- 取消部署模式下 不写入调试日志的功能 用调试级别设置单独的日志渠道来替代
- 改进日志记录格式
- 支持日志输出格式化
- 改进资源路由
- 改进命令行日志实时写入
- 日志通道支持单独设置level配置参数
- Log类调整优化
- 增加
paginateX
查询用于大数据分页查询 - 数据集增加
first
和last
方法 - 改进
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类的
init
和connect
方法取消 并入store
方法 cache
助手函数取消初始化用法cache
助手函数留空返回Cache对象- 默认时间字段类型改为
timestamp
- 注解路由移出核心,注解相关功能使用
topthink/think-annotation
- 改进路由 取消
url_convert
配置参数 - 取消
route:build
指令 - 调整默认模板目录为根目录
view
- 取消默认的请求日志记录 在项目里面自己添加
- 统一
find
查询必须使用查询条件 - 扩展的
service
配置文件默认放到vendor
目录下 - 废除
LogLevel
事件 - 取消App类的序列化方法
- 控制台的
user
配置改为通过静态方法设置当前执行用户
更多内容可以参考6.0完全开发手册
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
文件传输系统 kiftd —— 1.0.20 正式发布
kiftd简介: kiftd是一款专门面向个人、团队和小型组织的私有网盘系统。开源、便捷、小巧。无论是在笔记本上、家庭、学校还是办公室,均可以随时随地使用它。它不但是替代U盘进行文件传输的不二之选,同时也是一款具备MP4&MP3在线播放、PDF预览、图片查看、移动端访问等功能的个人云存储。无任何使用限制,即开即用,即使是刚刚学会点击鼠标的小白也能够在3分钟内快速开始。想要了解更多内容?欢迎访问官方网站:https://kohgylw.gitee.io/index.html 新版本v1.0.20 * 本次更新增加了较多用户们一直期待的、实用性较强的新功能,进一步增强kiftd的使用体验。推荐所有用户升级体验。 文件夹上传 现在,众多用户期待已久的上传文件夹功能现已上线。当用户同时具备“上传”和“新建文件夹”权限时,便可使用该功能进行文件夹的上传,同时还可以像新建文件夹一样自由设置上传后的文件夹的访问级别。示例如下: PPT预览功能 现在,众多用户期待已久的PPT文档在线预览功能正式上线,方便办公使用。PPT预览功能提供ppt和pptx格式的在线打开和预览,且支持全屏化单页播放,但...
- 下一篇
mklink 1.0.5 发布,软链接 Gradle 构建时指定目录
mklink 1.0.5 发布了,mklink 作为一个 Gradle 插件,用于构建过程中对一些目录建立软链接.。 mklink 可以在 Gradle 执行构建任务时,将 Build 目录在恰当的时机建立在内存盘的软链接,达到加速写入和减少固态磁盘消耗目的。 新版值更新内容有: 支持添加多个软链接(mklinks) // 多个链接 mklinks { mklink { next = '*' link = "${project.projectDir}\\build" target = "R:\\Build\\example\\${project.name}" } mklink { next = '*' link = "${project.projectDir}\\build_release" target = "R:\\Build\\example\\${project.name}_release" } } mklink配置方式如下: 使用方法
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS6,CentOS7官方镜像安装Oracle11G
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作