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

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Fluent Rule Builders for All Laravel Validation Rules image

Fluent Rule Builders for All Laravel Validation Rules

Read article
Laravel URL AI Transformer: Extract Structured Data From URLs image

Laravel URL AI Transformer: Extract Structured Data From URLs

Read article
Rule Builders for Every Validation Rule in Laravel 13.36 image

Rule Builders for Every Validation Rule in Laravel 13.36

Read article
PHP News: A New Site for PHP Releases, RFCs, and Packages image

PHP News: A New Site for PHP Releases, RFCs, and Packages

Read article
Pause Polling in Background Tabs in Inertia.js v3.9 image

Pause Polling in Background Tabs in Inertia.js v3.9

Read article
Look What You Helped Me Build image

Look What You Helped Me Build

Read article