Laravel 10.12 Released

Published on by

Laravel 10.12 Released image

Never Miss a Laravel Release 🚀

Sign up and get an email with each new Laravel release

The Laravel team released v10.12 with conditional methods added to Sleep, a new job timeout event, timezone validation parameters, and more:

Conditional sleep

Bradie Tilley contributed the ability to add conditions to the new Sleep class introduced in Laravel 10.10:

Sleep::for(1)->second()->unless($task->completed());
Sleep::for(1)->second()->when($task->pending());
 
// Closures
Sleep::for(1)->second()->unless(fn () => $task->completed());
Sleep::for(1)->second()->when(fn () => $task->pending());

Job timeout occurred event

Saeed Hosseini contributed a JobTimedOut event that a queue worker fires when the job has timed out:

use Illuminate\Queue\Events\JobTimedOut;
 
/**
* The event to listener mappings for the application.
*
* @var array<class-string, array<int, class-string>>
*/
protected $listen = [
JobTimedOut::class => [
SendJobTimedOutNotification::class,
],
];

Inline attachment support for Markdown mailables

Nuno Maduro contributed inline attachment support for Markdown mailables:

This pull request fixes markdown access to $message variable on template, by simply lazy render the markdown on the moment the $message variable as already available as view data.

See Pull Request #47140 for details.

Method not allowed HTTP assertion

Azim Kordpour contributed an assertion for HTTP status 405 (Method Not Allowed) that you can use to verify a route doesn't respond to certain HTTP verbs:

$this->get('/')->assertOk();
 
$this->post('/')->assertMethodNotAllowed();
$this->patch('/')->assertMethodNotAllowed();
$this->put('/')->assertMethodNotAllowed();
$this->delete('/')->assertMethodNotAllowed();

Eloquent forceCreateQuietly() method

Volodya Kurshudyan contributed a forceCreateQuietly() method to Eloquent that forces the creation of a model without triggering any model events:

Post::forceCreateQuietly($data);

Add parameters to timezone validation rule

Artyom Yavdoshchuk added support for using parameters with the timezone validation rule:

'timezone' // works as before
'timezone:Africa' // accepts only Africans timezones
'timezone:All' // works the same as without any parameters
'timezone:All_with_BC' // accepts timezones with Backward Compatibility (Europe/Kiev will be accepted)
'timezone:Per_country,US' // accepts only US timezones

Here's an example from the pull request test cases:

$v = new Validator(
$trans,
['foo' => 'australia/sydney'],
['foo' => 'Timezone:Australia']
);
 
$this->assertFalse($v->passes());

Release Notes

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

v10.12.0

Added

  • Added Illuminate/Queue/Events/JobTimedOut.php (#47068)
  • Added when() and unless() methods to Illuminate/Support/Sleep (#47114)
  • Adds inline attachments support for markdown mailables (#47140)
  • Added Illuminate/Testing/Concerns/AssertsStatusCodes::assertMethodNotAllowed() (#47169)
  • Added forceCreateQuietly method (#47162)
  • Added parameters to timezone validation rule (#47171)

Fixed

  • Fixes singleton and api singletons creatable|destryoable|only|except combinations (#47098)
  • Don't use empty key or secret for DynamoDBClient (#47144)

Changed

  • Remove session on authenticatable deletion (#47141)
  • Added error handling and ensure re-enabling of foreign key constraints in Illuminate/Database/Schema/Builder::withoutForeignKeyConstraints() (#47182)

Refactoring

  • Remove useless else statements (#47161)
Paul Redmond photo

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

Cube

Laravel Newsletter

Join 40k+ other developers and never miss out on new tips, tutorials, and more.

image
Tinkerwell

Enjoy coding and debugging in an editor designed for fast feedback and quick iterations. It's like a shell for your application – but with multi-line editing, code completion, and more.

Visit Tinkerwell
Acquaint Softtech logo

Acquaint Softtech

Acquaint Softtech offers AI-ready Laravel developers who onboard in 48 hours at $3000/Month with no lengthy sales process and a 100 percent money-back guarantee.

Acquaint Softtech
Laravel Cloud logo

Laravel Cloud

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

Laravel Cloud
Kirschbaum logo

Kirschbaum

Providing innovation and stability to ensure your web application succeeds.

Kirschbaum
Harpoon: Next generation time tracking and invoicing logo

Harpoon: Next generation time tracking and invoicing

The next generation time-tracking and billing software that helps your agency plan and forecast a profitable future.

Harpoon: Next generation time tracking and invoicing
Lucky Media logo

Lucky Media

Get Lucky Now - the ideal choice for Laravel Development, with over a decade of experience!

Lucky Media
PhpStorm logo

PhpStorm

The go-to PHP IDE with extensive out-of-the-box support for Laravel and its ecosystem.

PhpStorm
No Compromises logo

No Compromises

Joel and Aaron, the two seasoned devs from the No Compromises podcast, are now available to hire for your Laravel project. ⬧ Flat rate of $9500/mo. ⬧ No lengthy sales process. ⬧ No contracts. ⬧ 100% money back guarantee.

No Compromises
Shift logo

Shift

Running an old Laravel version? Instant, automated Laravel upgrades and code modernization to keep your applications fresh.

Shift
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit: Laravel SaaS Starter Kit

SaaSykit is a Multi-tenant Laravel SaaS Starter Kit that comes with all features required to run a modern SaaS. Payments, Beautiful Checkout, Admin Panel, User dashboard, Auth, Ready Components, Stats, Blog, Docs and more.

SaaSykit: Laravel SaaS Starter Kit

The latest

View all →
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
Laravel LSP: A First-Party Language Server Announced at Laracon US 2026 image

Laravel LSP: A First-Party Language Server Announced at Laracon US 2026

Read article
Watch Laracon US 2026 Live on YouTube image

Watch Laracon US 2026 Live on YouTube

Read article