News

Encrypt and Decrypt String Helpers in Laravel 12.18

Published
Encrypt and Decrypt String Helpers in Laravel 12.18 image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released v12.18.0, with encrypt and decrypt string helpers, per-request truncation limit for HTTP client responses, a new command option to make batchable jobs, and more:

Encrypt and decrypt Str helper methods

Hristijan Manasijev contributed encrypt() and decrypt() string helper methods, enabling encryption/decryption in fluent string chains:

// Before
$encryptedToken = str('secret-api-token')
->pipe(fn(Stringable $str) => encrypt($str->value()))
->prepend('encrypted:')
->append(':end');
 
 
// After
$encryptedToken = str('secret-api-token')
->encrypt()
->prepend('encrypted:')
->append(':end');

See Pull Request #55931 for details. The Strings documentation now includes encrypt and decrypt methods for stringable instances.

A command option for making batchable jobs

Hafez Divandari contributed a --batched option to the make:job command to make a batchable job:

php artisan make:job ProcessPodcast --batched

The above command generates the following ProcessPodcast class:

namespace App\Jobs;
 
use Illuminate\Bus\Batchable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
 
class ProcessPodcast implements ShouldQueue
{
use Batchable, Queueable;
 
/**
* Create a new job instance.
*/
public function __construct()
{
//
}
 
/**
* Execute the job.
*/
public function handle(): void
{
if ($this->batch()->cancelled()) {
// The batch has been cancelled...
 
return;
}
 
//
}
}

Configure a policy using a PHP Attribute

Caleb White contributed a UsePolicy attribute to configure which policy to use with a model. Policies have auto-discovery by convention, and this attribute allows you to be explicit if you want:

#[UsePolicy(PostPolicy::class)]
class Post extends Model {}

The UsePolicy attribute can be used to override or verbosely set a policy. While this attribute makes it possible to explicitly set a policy, I recommend learning about policy discovery to learn how Laravel uses conventions to discover policies.

Allow setting the RequestException truncation limit per request

Luke Kuzmish contributed the ability to customize the exception truncation behavior of HTTP client exceptions on a per-request basis:

Http::truncateExceptionsAt(240)->post(/* ... */)

For details, see the HTTP Client error handling documentation.

Release notes

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

v12.18.0

Paul Redmond photo

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

Sponsored

masteringlaravel logo
Laravel Code Review

Get expert guidance in a few days with a Laravel code review

Visit Laravel Code Review

The latest

View all →
Image Dominant Color and HEIC Support in Laravel 13.24 image

Image Dominant Color and HEIC Support in Laravel 13.24

Read article
Official Laravel Zed Extension: LSP for PHP & Blade image

Official Laravel Zed Extension: LSP for PHP & Blade

Read article
Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD image

Laravel Head: Manage Meta Tags, Open Graph, and JSON-LD

Read article
PhpStorm 2026.2 Released image

PhpStorm 2026.2 Released

Read article
Laravel Doctor: Diagnose Your App With One Artisan Command image

Laravel Doctor: Diagnose Your App With One Artisan Command

Read article
CPX: The Composer Package Executor for PHP image

CPX: The Composer Package Executor for PHP

Read article