Laravel 8.14 发布
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 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。