Laravel 8.14 发布

Laravel

Laravel团队发布了8.14版本,该版本具有调度唯一任务的功能,支持通过schema:dump使用套接字,新的路由表达式约束以及8.x分支中的最新新功能,修复和更改。让我们看看这个版本的新功能!

分配唯一任务

Paras Malhotra 提供了分配唯一任务的能力,除非该任务已完成处理,否则这些任务将不会分配具有相同密钥的另一个任务。 这是获取请求中的示例,显示了如何使用它:

use Illuminate\Contracts\Queue\ShouldBeUnique;

class MyUniqueJob implements ShouldQueue, ShouldBeUnique
{
   /**
    * 任务保持唯一状态秒数
    * @var int
    */
    public $uniqueFor = 3600;

    public function uniqueId()
    {
        return $this->user->id;
    }
}

模型 encryptUsing 方法

Illia Sakovich 贡献了一个新的 encryptUsing 模型方法来定义要与加密字符串强制转换一起使用的加密方法。下面是如何使用它来确定所使用的加密器:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Encryption\Encrypter;

$databaseEncryptionKey = config('database.encryption_key');
$encrypter = new Encrypter($databaseEncryptionKey);

Model::encryptUsing($encrypter);

MySQL Dump 和 Import 使用套接字

Lito 贡献了通过 schema:dump 命令使用 MySQL 套接字的支持。以前,如果 MySQL 只允许套接字连接,则无法转储模式。

Alphanumeric 的路由约束

Amit Merchant 贡献了 whereAlphaNumeric
路由表达式约束来定义路由约束,而不是直接使用正则表达式。下面是一个示例:

// Using `where()`
Route::get('user/{name}', function ($name) {
    //
})->where('name', '[a-zA-Z0-9]+');

// New optional syntax
Route::get('user/{name}', function ($name) {
    //
})->whereAlphaNumeric('name');

Laravel 8.13 介绍了几个您可能想查看的路由参数约束快捷方式!

发行说明

您可以在 GitHub 上看到新功能和更新的完整列表以及 8.13.0 和 8.14.0 之间的区别。以下发行说明直接来自 变更日志

v8.14.0

新增

  • 新增了分配唯一作业的功能 (#350422123e60 )
  • 新增了 Model::encryptUsing() (#35080)
  • 新增了对使用套接字的 MySQL 转储和导入的支持 (#35083, c43054b)
  • 在通知广播频道中允许自定义 (#35142)
  • 新增了 Illuminate\Routing\CreatesRegularExpressionRouteConstraints::whereAlphaNumeric() (#35154)

已修复

  • 修复了 ModelMakeCommand 内部的 make:seeder 命令名称中的拼写错误 (#35107)
  • 修复了 upsert (缺少分号) 的 SQL Server 语法 (#35112)
  • 在转储模式时,请尊重配置中的迁移表名 (110eb15)
  • 预览通知时要尊重主题 (ed4411d)
  • 修复了 Blade 组件中的可附加属性 (#35131)
  • 从 cookie 解密中删除解密数组 cookie (#35130)
  • 如果 mapWithKeys 丢失模型,则将 eloquent 集合转换为基类集合 (#35129)

已变更

  • 将 DatabaseRefreshed 事件的调度触发移动到运行 seeders 之前 (#35091)
  • 处理从可报告回调返回 false (55f0b5e)
  • 更新 Illuminate\Database\Schema\Grammars\MySqlGrammar::typeTimestamp() (#35143)
  • 在 PendingCommand (#35163) 中,转换了 expectedOutput 后删除 expectedTables
  • 更改 SQLite schema 命令环境变量以在 Windows 上工作 (#35164)
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel-8-14-0

译文地址:https://learnku.com/laravel/t/51596

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!