News

Laravel 10.15: Sub-minute Task Scheduling, Raw SQL Query Builder Methods, and More

Published
Laravel 10.15: Sub-minute Task Scheduling, Raw SQL Query Builder Methods, and More image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released v10.15 with sub-minute scheduling, raw SQL query build methods, throwing an HTTP exception from a view, and more:

Sub-minute scheduling

Jess Archer contributed Sub-minute Scheduling, which provides new frequency options when scheduling jobs:

$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();

Previously, the highest frequency offered was every minute without using a community package. This is an awesome addition for those that need to run scheduled tasks at a greater frequency. See Pull Request #47279 for details, caveats, and discussion around this feature!

Raw SQL methods added to query builders

We mentioned that Raw Query Output With Bindings is Coming to Laravel 10, which was released in v10.15! Tobias Petry contributed this feature, which includes three methods you can use to see a query builder's raw SQL with bindings:

$query->ddRawSql(); // SQL string output via dd()
$query->dumpRawSql(); // SQL string output via dump()
$query->toRawSql(); // raw sql string

Inline attachment support for "notification" markdown mailable

Nuno Maduro contributed support for inline attachments in notification markdown mailables. See Pull Request #47643 and Pull Request #47603 for more details.

DB::getRawQueryLog() method

@Fuwasegu contributed a getRawQueryLog() method that works similarly to 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() method

Graham Campbell contributed a isUrl() method to validate whether a string is a valid url. It uses the logic from the validator validateUrl() method, which now calls the new method:

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

Allow HTTP exceptions to be thrown in views

Nuno Maduro contributed the ability to throw HTTP exceptions from views:

@php
if (! Gate::check('view-books')) {
abort(403);
}
 
$books = auth()->user()->books;
@endphp
 
@foreach ($books as $book)
<div>
{{ $book->title }}
</div>
@endforeach

Release notes

You can see the complete list of new features and updates below and the diff between 10.14.0 and 10.15.0 on GitHub. The following release notes are directly from the changelog:

v10.15.0

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

laravelcloud logo
Laravel Cloud

Easily create and manage your servers and deploy your Laravel applications in seconds.

Visit Laravel Cloud

The latest

View all →
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article
Laravel AI SDK Adds Human-in-the-Loop Tool Approval image

Laravel AI SDK Adds Human-in-the-Loop Tool Approval

Read article
Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals image

Pest 5 Released With Test Impact Analysis, Agent Verification, and Evals

Read article
Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs image

Queue-SQL: Run Mass Deletes and Updates Across Parallel Queue Jobs

Read article
Blade Formatting in Laravel Pint image

Blade Formatting in Laravel Pint

Read article
Inertia DevTools Is Now on the Chrome Web Store image

Inertia DevTools Is Now on the Chrome Web Store

Read article