Laravel 9.31版本发布
Laravel  /  管理员 发布于 2年前   600
Laravel团队2022年9月21日发布了 9.31,其中包含请求生命周期持续时间处理程序、在不更改时间戳的情况下更新模型、用于测试的假批次等等:
请求生命周期持续时间处理程序
当请求生命周期长于给定时间限制时,Tim MacDonald贡献了一个回调处理程序:
use Carbon\CarbonInterval as Interval;
use Illuminate\Contracts\Http\Kernel;
public function boot()
{
if ($this->app->runningInConsole()) {
return;
}
$kernel = $this->app[Kernel::class];
$kernel->whenRequestLifecycleIsLongerThan(
Interval::seconds(1),
fn ($startedAt, $request, $response) => /* ... */
);
}
该回调类似于Laravel 9.18 Released中发布的累积数据库查询时间,但针对的是请求生命周期。
模型“无时间戳”功能
Tim MacDonald贡献了一个不会改变的静态withoutTimestamps()方法:updated_at
$user = User::first();
// `updated_at` is not changed...
User::withoutTimestamps(
fn () => $user->update(['reserved_at' => now()])
);
Vite manifestHash 函数
Enzo Innocenzi为该类贡献了一个manifestHash()方法,Vite如果清单存在,该方法将返回一个唯一的哈希值。这可用于使资产无效。有关详细信息,请参阅拉取请求 #44136。
假批次
Taylor Otwell提供了假批次:
>目前很难测试批处理是否被作业取消或作业是否向批处理添加了其他作业。您必须手动创建 FakeBatch 并覆盖取消/添加方法等。
这解决了这个问题。
[$job, $batch] = (new TestJob)->withFakeBatch();
$job->handle();
$this->assertTrue($batch->cancelled());
$this->assertNotEmpty($batch->added);
模型 getAppends() 方法
Arturo Rodríguez向 Model 添加了一个访问器方法,以获取附加到模型数组的访问器。这对于自定义模型映射可能很有用:
$model->getAppends();
str wrap 静态方法
Steve Bauman添加了一个缺失的静态Str::wrap()方法,该方法只能通过以下方式获得Stringable:
Str::wrap('-bar-', 'foo', 'baz'); // 'foo-bar-baz'
str('-bar-')->wrap('foo', 'baz'); // 'foo-bar-baz'
宏指令
Tim MacDonald贡献了这个Macroable特性来Illuminate\Foundation\Vite创建与你的 JS 配置匹配的别名:
Vite::macro('image', fn ($asset) => $this->asset("resources/images/{$asset}"));
// Usage: <img src="{{ Vite::image('profile.png') }}" ... >
有关更多详细信息,请参阅拉取请求 #44198。
发行说明
您可以在下面查看新功能和更新的完整列表以及GitHub 上9.30.0 和 9.31.0之间的差异。
以下发行说明直接来自变更日志:
https://github.com/laravel/framework/compare/v9.30.0...v9.31.0
https://github.com/laravel/framework/blob/1d8e86193fd1740606a836f25043e84fe78c562d/CHANGELOG.md#v9310---2022-09-20
v9.31.0
添加
为 PostgreSQL 添加了唯一可延迟的初始延迟常量 ( #44127 )
请求生命周期持续时间处理程序 ( #44122 )
添加模型::withoutTimestamps(...) ( #44138 )
添加 manifestHash 函数到 Illuminate\Foundation\Vite ( #44136 )
/Illuminate/Collections/Traits/EnumeratesValues::operatorForWhere()在( #44154 )中添加了对运算符 <=> 的支持
添加 Illuminate/Database/Connection::registerDoctrineType() 可以接受对象以及新学说类型的类名(#44149)
添加了假批次(#44104,#44173)
添加Model::getAppends()(#44180)
添加了缺少的 Str::wrap() 静态方法 ( #44207 )
添加了要求symfony/uid(#44202)
使 Vite 可宏化 ( #44198 )
修复
异步修复Illuminate/Http/Client/PendingRequest(#44179)
使用 PHP_CLI_SERVER_WORKERS 环境变量修复 artisan serve 命令 ( #44204 )
修复了InteractsWithDatabase::castAsJson($value)错误地处理 SQLite 数据库 ( #44196 )
改变
改进 Blade 编译异常消息 ( #44134 )
改进测试失败输出 ( #43943 )
迁移时提示创建 MySQL db ( #44153 )
改进对 Eloquent 的 UUID 和 ULID 支持 ( #44146 )
转:
https://laravel-news.com/laravel-9-31-0
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号