前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 6.10 版本发布,支持 PHPUnit 9,为 PHP 8 留下后手

Laravel 6.10 版本发布,支持 PHPUnit 9,为 PHP 8 留下后手

作者头像
学院君
发布2020-01-17 15:35:41
2.5K0
发布2020-01-17 15:35:41
举报
文章被收录于专栏:学院君的专栏学院君的专栏

Laravel 开发团队昨天发布了 v6.10 版本,本次版本发布包含 11 个新特性以及大量的问题修复、功能废弃和代码优化,另外,还引入了对 PHPUnit 9 的支持。

第一部分:重要新特性介绍

下面,我们一起来看下几个重要的新特性:

Laravel Mix 测试辅助函数

在新版本中,可以通过 withoutMix()withMix() 测试辅助函数启用或禁用异常处理:

代码语言:javascript
复制
// 之前这么实现
$this->swap(\Illuminate\Foundation\Mix::class, function () {
    return '';
});

// 现在这么实现
$this->withoutMix();
代码语言:javascript
复制

新增请求验证宏方法

在 Request 请求类中新增了 validateWithBag 宏方法,用于在验证请求参数时指定错误包:

代码语言:javascript
复制
$request->validateWithBag('blog', [
    'title' => ['required', 'unique:posts', 'max:255'],
    'body' => ['required'],
]);
代码语言:javascript
复制

Laravel 6 官方文档也已经体现了这一更新:https://xueyuanjun.com/post/19936。

支持 PHPUnit 9

v6.10 开始,Laravel 开始支持 PHPUnit 9,可以通过完整的 pull request 查看实现细节:https://github.com/laravel/framework/pull/30947。

至于为什么要引入 PHPUnit 9,主要原因是 PHP 8.0、8.1、8.2 或者 8.3 中将很有可能不再支持 PHPUnit 8,而 Laravel 6 是 LTS 版本,我们希望它可以支持最新版本的 PHP,所以需要能够运行最新版本的 PHPUnit。

Redis 连接类支持定义宏方法

和 Laravel 框架中其他支持 macro 方法的类一样,现在可以在 Redis Connection 上调用 macro 定义宏方法:

代码语言:javascript
复制
use Illuminate\Redis\Connections\Connection;

Connection::macro('foo', function () {
    return 'foo';
});
代码语言:javascript
复制

以上只是几个重要的更新,完整的更新日志可以在这里查看:https://github.com/laravel/framework/blob/6b9232037f8041c298b6479ef4ffd70d78d61a27/CHANGELOG-6.x.md#v6100-2020-01-07,此外,你还可以在 Github 上对比 6.9.0 和 6.10.0 版本的差异:https://github.com/laravel/framework/compare/v6.9.0...v6.10.0。

第二部分:更新日志速览

新增特性
  • 新增 withoutMix()withMix() 测试辅助函数
  • 新增 validateWithBag() 宏方法到 Request 类
  • 新增对 PHPUnit 9 的支持
  • 新增 exclude_ifexclude_unless 验证规则
  • 新增对 PostgreSQL 生成列(virtual/stored)的支持
  • 在 Eloquent 构建器中新增 mixin 支持
  • Redis Connection 支持定义宏方法
  • 新增 PackageManifest::config() 方法
  • 在容器中新增 redis.connection 别名
  • Illuminate\Console\Command 中分离出 CallsCommands 功能
  • 允许在 Storage::putFile() 中使用绝对文件路径
功能调整
  • 处理传递过多参数到 @slot
  • ThrottleRequestsException 继承 TooManyRequestsHttpException
  • 在邮件 Markdown 中使用 league/commonmark 扩展包取代 erusev/parsedown
  • 在退出时重新生成令牌
  • 让 RedisQueue::getConnection() 方法可以公开访问
  • 删除对 graham-campbell/testbench-core 扩展包的依赖
  • 从容器中解析 Faker\Generator
问题修复
  • 修复 Blueprintfloat 数据库字段类型
  • 修复依赖 getenv() 的代码
  • 防止在重连时进行实际的 PDO 连接
  • 修复针对嵌套数据的 exclude_if/exclude_unless 验证规则
  • dev-master 分支别名从 6.0-dev 修改为 6.x-dev
  • 使用 Symfony 的 PSR 工厂修复 #31027
  • 在数据库验证器中默认使用模型连接
代码优化
  • 优化服务提供者注册
  • 优化 runningInConsole 方法
  • 延迟翻译器和视图工厂的实例化
废弃代码
  • 废弃 PendingMail::sendNow() 并移除不必要的检查
还原代码
  • 还原 TransactionCommitted 事件不包含我期望的事物级别
重构代码
  • 重构 BladeCompiler::compileString() 方法

声明:本文翻译整理自 Laravel News

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极客书房 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一部分:重要新特性介绍
    • Laravel Mix 测试辅助函数
      • 支持 PHPUnit 9
        • Redis 连接类支持定义宏方法
        • 第二部分:更新日志速览
          • 新增特性
            • 功能调整
              • 问题修复
                • 代码优化
                  • 废弃代码
                    • 还原代码
                      • 重构代码
                      相关产品与服务
                      云数据库 Redis
                      腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档