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

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Taylor disabled GitHub Issues on most Laravel open-source packages. image

Taylor disabled GitHub Issues on most Laravel open-source packages.

Read article
Exclude Vendor and Default Commands in `php artisan dev` image

Exclude Vendor and Default Commands in `php artisan dev`

Read article
The Laracon Archive image

The Laracon Archive

Read article
Group Adjacent Collection Items in Laravel with chunkBy() image

Group Adjacent Collection Items in Laravel with chunkBy()

Read article
Laravel queue:work Now Prints Why the Worker Stopped image

Laravel queue:work Now Prints Why the Worker Stopped

Read article
Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites image

Sidecar Brings Statamic's Control Panel to Your Existing Markdown Sites

Read article