Laravel 10.15: 子分钟任务调度、原始 SQL 查询构建器方法等
发布于 作者 Paul Redmond
本周,Laravel 团队发布了 v10.15,其中包含子分钟调度、原始 SQL 查询构建器方法、从视图中抛出 HTTP 异常等功能。
子分钟调度
Jess Archer 贡献了子分钟调度,它在调度作业时提供了新的频率选项。
$schedule->job(new ExampleJob)->everySecond();$schedule->job(new ExampleJob)->everyTwoSeconds();$schedule->job(new ExampleJob)->everyFiveSeconds();$schedule->job(new ExampleJob)->everyTenSeconds();$schedule->job(new ExampleJob)->everyFifteenSeconds();$schedule->job(new ExampleJob)->everyTwentySeconds();$schedule->job(new ExampleJob)->everyThirtySeconds();
以前,如果没有使用社区包,提供的最高频率是每分钟一次。对于需要更频繁地运行计划任务的人来说,这是一个很棒的补充。有关此功能的详细信息、注意事项和讨论,请参阅 Pull Request #47279!
添加到查询构建器的原始 SQL 方法
我们提到过 带有绑定的原始查询输出即将出现在 Laravel 10 中,它在 v10.15 中发布了!Tobias Petry 贡献了此功能,其中包含三个方法,您可以使用这些方法查看查询构建器的原始 SQL 和绑定。
$query->ddRawSql(); // SQL string output via dd()$query->dumpRawSql(); // SQL string output via dump()$query->toRawSql(); // raw sql string
"通知" Markdown 可邮件的内联附件支持
Nuno Maduro 贡献了对 "通知" Markdown 可邮件的内联附件的支持。有关更多详细信息,请参阅 Pull Request #47643 和 Pull Request #47603。
DB::getRawQueryLog() 方法
@Fuwasegu 贡献了一个 getRawQueryLog()
方法,它的工作原理类似于 DB::getQueryLog()
DB::enableQueryLog(); // ... perform queries $logs = DB::getRawQueryLog();/*[ [ "raw_query" => "select * from "users" where "id" in (3, 6, 8)" "time" => 4.06 ]]*/
String isUrl() 方法
Graham Campbell 贡献了一个 isUrl()
方法,用于验证字符串是否为有效的 URL。它使用验证器 validateUrl()
方法中的逻辑,该方法现在调用了新方法。
use Illuminate\Support\Str; Str::isUrl('https://example.com'); // trueStr::isUrl('ms-officeapp://launchapp'); // trueStr::isUrl('invalid://launchapp'); // falseStr::isUrl('//example.com'); // false
允许在视图中抛出 HTTP 异常
Nuno Maduro 贡献了从视图中抛出 HTTP 异常的功能。
@php if (! Gate::check('view-books')) { abort(403); } $books = auth()->user()->books;@endphp @foreach ($books as $book) <div> {{ $book->title }} </div>@endforeach
发行说明
您可以在下面查看完整的新功能和更新列表,以及 10.14.0 和 10.15.0 之间的差异。以下发行说明直接来自 变更日志
v10.15.0
- [10.x] 更改 AblyBroadcaster 中
getPrivateToken
的返回类型 by @milwad-dev in https://github.com/laravel/framework/pull/47602 - [10.x] 将 toRawSql、dumpRawSql() 和 ddRawSql() 添加到查询构建器 by @tpetry in https://github.com/laravel/framework/pull/47507
- [10.x] 修复 recorderHandler 未记录中间件所做的更改 by @j3j5 in https://github.com/laravel/framework/pull/47614
- 将队列从可邮件传递到 SendQueuedMailable 作业 by @Tarpsvo in https://github.com/laravel/framework/pull/47612
- [10.x] 子分钟调度 by @jessarcher in https://github.com/laravel/framework/pull/47279
- [10.x] 修复在 DynamoDB Local 2.0.0 上运行的测试失败 by @crynobone in https://github.com/laravel/framework/pull/47653
- [10.x] 允许密码重置回调修改结果 by @GrahamCampbell in https://github.com/laravel/framework/pull/47641
- 使用集合忘记 by @joelbutcher in https://github.com/laravel/framework/pull/47637
- [10.x] 在增加/减少现有模型时不应用全局范围 by @cosmastech in https://github.com/laravel/framework/pull/47629
- [10.x] 为 "通知" Markdown 可邮件添加内联附件支持 by @nunomaduro in https://github.com/laravel/framework/pull/47643
- 断言用于计算发出的可邮件 by @jasonmccreary in https://github.com/laravel/framework/pull/47655
- [10.x] 添加 getRawQueryLog() 方法 by @fuwasegu in https://github.com/laravel/framework/pull/47623
- [10.x] 修复 Storage::cloud() 的返回类型 by @tattali in https://github.com/laravel/framework/pull/47664
- [10.x] 将
isUrl
添加到Str
类并从验证器中使用它 by @GrahamCampbell in https://github.com/laravel/framework/pull/47688 - [10.x] 删除对包含堆栈跟踪的无用调用 by @HazzazBinFaiz in https://github.com/laravel/framework/pull/47687
- [10.x] 使 Vite 抛出一个新的
ManifestNotFoundException
by @innocenzi in https://github.com/laravel/framework/pull/47681 - [10.x] 将 Console Kernel 中的类从文件逻辑移动到专用方法 by @CalebDW in https://github.com/laravel/framework/pull/47665
- [10.x] 分派模型修剪开始和结束事件 by @ziadoz in https://github.com/laravel/framework/pull/47669
- [10.x] 更新 DatabaseRule 以处理简单 where 子句的枚举 by @CalebDW in https://github.com/laravel/framework/pull/47679
- [10.x] 添加 data_forget 助手 by @PhiloNL in https://github.com/laravel/framework/pull/47618
- [10.x] 为 Str 添加了
isUrl
的测试。by @michaelnabil230 in https://github.com/laravel/framework/pull/47690 - [10.x] 将
isUrl
添加到 Stringable。by @michaelnabil230 in https://github.com/laravel/framework/pull/47689 - [10.x] 微调缺少配置的返回类型 by @sfreytag in https://github.com/laravel/framework/pull/47702
- [10.x] 修复没有数据库连接的并行测试 by @deleugpn in https://github.com/laravel/framework/pull/47705
- [10.x] 测试改进 by @crynobone in https://github.com/laravel/framework/pull/47709
- [10.x] 允许通过 @nunomaduro 在 https://github.com/laravel/framework/pull/47714 中为视图抛出 HTTP 异常。