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

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