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

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
Volker Dusch on the PHP RCE Vulnerabilities and Disclosure image

Volker Dusch on the PHP RCE Vulnerabilities and Disclosure

Read article
Decide with Jev: Turn AI Answers into Decisions with PHP Rules image

Decide with Jev: Turn AI Answers into Decisions with PHP Rules

Read article
Skuul: Open-Source School Management Built on Laravel image

Skuul: Open-Source School Management Built on Laravel

Read article
Laravel Read Replicas: Prevent Stale Reads After a Write image

Laravel Read Replicas: Prevent Stale Reads After a Write

Read article
Screenshot: Capture Images and PDFs with PHP and Laravel image

Screenshot: Capture Images and PDFs with PHP and Laravel

Read article
Reset Sticky Database Connections Between Laravel Queue Jobs image

Reset Sticky Database Connections Between Laravel Queue Jobs

Read article