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 →
Building EasyReply: How We Used Laravel to Unify Customer Support image

Building EasyReply: How We Used Laravel to Unify Customer Support

Read article
PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum image

PostgreSQL Monitoring and Schema Linting for Laravel with Vacuum

Read article
PayZephyr: One Payment API for Stripe, Paystack, and PayPal image

PayZephyr: One Payment API for Stripe, Paystack, and PayPal

Read article
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article