Laravel 6.10.0 版本发布,支持 PHPUnit 9
Laravel 开发团队昨天发布了 v6.10
版本,本次版本发布包含 11 个新特性以及大量的问题修复、功能废弃和代码优化,另外,还引入了对 PHPUnit 9 的支持。
注:Laravel 6.9.0 版本代码调整较少,所以没有单独介绍,可以通过 Github 上的版本发布日志查看具体细节。
新特性介绍
下面,我们一起来看下几个重要的新特性:
Laravel Mix 测试辅助函数
在新版本中,可以通过 withoutMix()
和 withMix()
测试辅助函数启用或禁用异常处理:
// 之前这么实现
$this->swap(\Illuminate\Foundation\Mix::class, function () {
return '';
});
// 现在这么实现
$this->withoutMix();
新增请求验证宏方法
在 Request 请求类中新增了 validateWithBag
宏方法,用于在验证请求参数时指定错误包:
$request->validateWithBag('blog', [
'title' => ['required', 'unique:posts', 'max:255'],
'body' => ['required'],
]);
Laravel 6 官方文档也已经体现了这一更新,点击这里查看。
支持 PHPUnit 9
从 v6.10
开始,Laravel 开始支持 PHPUnit 9,可以通过完整的 pull request 查看实现细节。
至于为什么要引入 PHPUnit 9,主要原因是 PHP 8.0、8.1、8.2 或者 8.3 中将很有可能不再支持 PHPUnit 8,而 Laravel 6 是 LTS 版本,我们希望它可以支持最新版本的 PHP,所以需要能够运行最新版本的 PHPUnit。
Redis 连接类支持定义宏方法
和 Laravel 框架中其他支持 macro
方法的类一样,现在可以在 Redis Connection 上调用 macro
定义宏方法:
use Illuminate\Redis\Connections\Connection;
Connection::macro('foo', function () {
return 'foo';
});
以上只是几个重要的更新,完整的更新日志可以在这里查看:v6 changlog,此外,你还可以在 Github 上对比 6.9.0 和 6.10.0 版本的差异。
更新日志速览
新增特性
- 新增
withoutMix()
和withMix()
测试辅助函数(#30900) - 新增
validateWithBag()
宏方法到 Request 类(#30896) - 新增对 PHPUnit 9 的支持(#30947)
- 新增
exclude_if
和exclude_unless
验证规则(#30835、c0fdb56) - 新增对 PostgreSQL 生成列(virtual/stored)的支持(#30971)
- 在 Eloquent 构建器中新增
mixin
支持(#30978、28fa74e) - Redis Connection 支持定义宏方法(#31020)
- 新增
PackageManifest::config()
方法(#31039、9b73540) - 在容器中新增
redis.connection
别名(#31034) - 从
Illuminate\Console\Command
中分离出CallsCommands
功能(#31026、ef72716) - 允许在
Storage::putFile()
中使用绝对文件路径(#31040)
功能调整
- 处理传递过多参数到
@slot
(#30893、878f159) - 让
ThrottleRequestsException
继承TooManyRequestsHttpException
(#30943) - 在邮件 Markdown 中使用
league/commonmark
扩展包取代erusev/parsedown
(#30982) - 在退出时重新生成令牌(b2af428)
- 让 RedisQueue::getConnection() 方法可以公开访问(#31016)
- 删除对
graham-campbell/testbench-core
扩展包的依赖(#30989) - 从容器中解析
Faker\Generator
(#30992)
问题修复
- 修复
Blueprint
中float
数据库字段类型(#30891) - 修复依赖
getenv()
的代码(#30924) - 防止在重连时进行实际的 PDO 连接(#30998)
- 修复针对嵌套数据的
exclude_if
/exclude_unless
验证规则(#31006) - 将
dev-master
分支别名从6.0-dev
修改为6.x-dev
(d06cc79) - 使用 Symfony 的 PSR 工厂修复 #31027(#31018、#31027)
- 在数据库验证器中默认使用模型连接(#31037)
代码优化
废弃代码
- 废弃
PendingMail::sendNow()
并移除不必要的检查(#30999)
还原代码
重构代码
- 重构
BladeCompiler::compileString()
方法(08887f9)
声明:本文翻译整理自 Laravel News。
3 Comments
回家过年,也不忘更新,辛苦。
回杭州啦 哪能这么早过年 ?
学院君;文章发布还是直接放出来吧。然后 当别人投诉,然后由你在去审核不就行了。不然 ,影响他人积极性