Laravel 10.15 发布
本周,Laravel 团队发布了 v10.15, 随之的功能包括 sub-minute scheduling, 原始 SQL 查询生成方法、视图中抛出 HTTP 异常,等等:
Sub-minute scheduling
Jess Archer 贡献了 Sub-minute Scheduling, 使之为任务调度时提供了新的频率选项:
$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();
此前在不使用社区包的情况下,所提供的最高频率为每分钟。对于那些需要更频繁地运行计划任务的人来说,这是一个很棒的补充。有关此功能的详细信息、注意事项和讨论,请参阅PR请求#47279!
Raw SQL 方法添加到 query builder
我们提到了 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
"notification" markdown mailable 的内联附件支持
Nuno Maduro 为通知 markdown mailable 内联附件提供了支持。有关更多详细信息,请参阅拉取请求#47643和拉取请求#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
]
]
*/
字符串 isUrl() 方法
Graham Campbell 贡献了 isUrl() 方法,用来验证一个字符串是否是有效的 URL。它使用验证器的 validateUrl() 方法的逻辑,而 validateUrl 方法现在调用了这个新方法:
use Illuminate\Support\Str;
Str::isUrl('https://example.com'); // true
Str::isUrl('ms-officeapp://launchapp'); // true
Str::isUrl('invalid://launchapp'); // false
Str::isUrl('//example.com'); // false
允许在视图中抛出 HTTP exceptions
Nuno Maduro 贡献了视图中抛出 HTTP exception 的功能:
@php
if (! Gate::check('view-books')) {
abort(403);
}
$books = auth()->user()->books;
@endphp
@foreach ($books as $book)
<div>
{{ $book->title }}
</div>
@endforeach