内容简介:RC4版本主要改进包括ORM库独立,日志系统增加多通道支持,缓存、日志、数据库的配置文件统一调整为多通道模式,并做了大量的改进和修正。 本次更新相对于RC3版本主要涉及配置文件的更新,其它调整参考更新日志的用...
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完全开发手册
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Golang 并发,有缓存通道,通道同步案例演示
- 科普 | 菜鸟学习状态通道,Part-2:App 定制型状态通道
- golang通道定义
- 通道 | Java NIO
- Go 通道
- golang 通道channel 基础
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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》 这本书的介绍吧!