Laravel 10.30版本的发布及数据库事务后调度事件
Laravel  /  管理员 发布于 11个月前   387
本周,Laravel 团队发布了 v10.30,其中包括根据数据库事务结果调度事件的功能。
本周发布的版本还包括许多小修复、新增测试和其他改动。
有关更新的完整列表,请参阅更新日志。
根据数据库事务结果调度事件
Mateus Guimarães 和 Taylor Otwell 合作根据正在进行的数据库事务的结果调度事件:
”该 PR 的目的是让事件本身了解事务。因此,如果事务失败,事件甚至不会被发布。
这样一来,监听器是否在队列中或是否启用了 afterCommit 都无关紧要,
而且在测试中也能确保事件没有被发布。“
有了这个贡献,你现在可以为事件添加 ShouldDispatchAfterCommit 接口,
指示事件派发器在事务提交之前暂缓派发事件;
如果事务回滚,事件将不会触发。
下面是一个假想的示例,说明它是如何工作的
--给定以下事务,并在事务中进行调度:
DB::beginTransaction();
Log::info("Transaction started");
$order = Order::create(['amount' => 5000]);
// More stuff...
Log::info("Dispatching OrderCreated event");
OrderCreated::dispatch($order);
Log::info("Closing transaction");
DB::commit();
日志可能是这样的
local.INFO: Transaction started
local.INFO: Dispatching OrderCreated event
local.INFO: Closing transaction
local.INFO: Order created event handled...
最后,事件可能如下所示:
use Illuminate\Contracts\Events\ShouldDispatchAfterCommit;
class OrderCreated implements ShouldDispatchAfterCommit
{
// ...
}
除了 ShouldDispatchAfterCommit 之外,拉取请求还扩展了其他接口,
如用于监听器的 ShouldHandleEventsAfterCommit 和 ShouldQueueAfterCommit,
这些接口可在作业、监听器、邮件和通知中实现。
测试改进
Mior Muhammad Zaki 对测试进行了改进,
使 Laravel 与未来发布的 PHPUnit 11 兼容
--详见 Pull Request #48815。
版本说明
您可以在 GitHub 上查看以下新功能和更新的完整列表,以及 10.29.0 和 10.30.1 之间的差异。
以下版本说明直接来自更新日志:
https://github.com/laravel/framework/compare/v10.29.0...v10.30.1
https://github.com/laravel/framework/blob/d0a6080db78a7e8a3316ff9c41eb86aa0866742d/CHANGELOG.md
v10.30.1
[10.x] 由 @hafezdivandari 在 https://github.com/laravel/framework/pull/48877
中提出的修正 postgreSQL 保留字列名/保护属性在本地列属性实现中被破坏的问题
v10.30.0
[10.x] 测试改进,
由 @crynobone 在 https://github.com/laravel/framework/pull/48815 提供
[10.x] 验证哈希配置
(由 @timacdonald 在 https://github.com/laravel/framework/pull/48814 提供
[10.x] 修复在 Lumen ArrayCache 中使用 now 函数的问题,
作者 @cxlblm 发布于 https://github.com/laravel/framework/pull/48826
[10.x] 解决服务提供商匹配问题(
由 @timacdonald 在 https://github.com/laravel/framework/pull/48824 提供
[10.x] 修复注册 PSR 请求时的类型错误,
作者 @kpicaza,发布于 https://github.com/laravel/framework/pull/48823
[10.x] 配置默认会话阻塞超时的功能,
由 @bytestream 发布于 https://github.com/laravel/framework/pull/48795
[10.x] 改进 artisan migrate --pretend 命令
作者 @NickSdot 发布于 https://github.com/laravel/framework/pull/48768
[10.x] 添加对获取本地列属性的支持
@hafezdivandari 发表于 https://github.com/laravel/framework/pull/48357
fix(Eloquent/Builder):调用 passthru 基对象上的方法应区分大小写,
作者 @luka-papez 发布于 https://github.com/laravel/framework/pull/48852
[10.x] 修复QueriesRelationships
[@getRelationHashedColumn](https://github.com/getRelationHashedColumn)() typehint
by @cosmastech in https://github.com/laravel/framework/pull/48847
[10.x]记住异常中的工作由
@timacdonald 在 https://github.com/laravel/framework/pull/48830 中提供
修复当我们向 throwUnlessStatus 方法传递可调用时总是抛出异常的错误 [包含测试]
by @mhfereydouni in https://github.com/laravel/framework/pull/48844
[10.x] 基于 DB 事务结果调度事件
by @mateusjatenee in https://github.com/laravel/framework/pull/48705
[10.x] 重置 ShouldDispatchAfterCommitEventTest 对象属性
by @mateusjatenee in https://github.com/laravel/framework/pull/48858
[10.x] 尝试为数据库连接转义数组时抛出异常
by @sidneyprins in https://github.com/laravel/framework/pull/48836
[10.x]修复在 HTTP 面查询参数和正文中可字符串对象未转换为字符串的问题,
作者 @LasseRafn 发布于 https://github.com/laravel/framework/pull/48849
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号