Laravel 12.16.0 - New Features for Developers

June 3, 2025

Laravel 12.16.0 - New Features for Developers

1. New Validation Rule: in_array_keys

You can now validate that an array contains at least one of the specified keys:


Validator::make($request->all(), [
  'config' => 'array|in_array_keys:api_key,access_token,oauth_token',
  'config.api_key' => 'nullable|string|min:32|max:64',
  // ...
]);
  

This in_array_keys rule checks for the presence of any given key :contentReference[oaicite:6]{index=6}.

2. Fluent Rule Method: Rule::contains()

This gives you a cleaner and more expressive way to check array contents:


Validator::make($request->all(), [
  'roles' => [
    'required',
    'array',
    Rule::contains([Role::Admin, Role::Editor]),
  ],
]);
  

This replaces the older string-based contains: validation rule :contentReference[oaicite:7]{index=7}.

3. New Helper: Arr::hasAll()


use Illuminate\Support\Arr;

$array = ['name'=>'Taylor','language'=>'php'];

Arr::hasAll($array, ['name']); // true
Arr::hasAll($array, ['name','language']); // true
Arr::hasAll($array, ['name','ide']); // false
  

You're able to check if an array has *all* specified keys :contentReference[oaicite:8]{index=8}.

4. toUri() on Stringable


$sentence = 'Go to {https://euhosting.com/support} for support.';
$uri = str($sentence)->between('{','}')->toUri();

return $uri->value();
  

This converts a string segment into a URI object easily :contentReference[oaicite:9]{index=9}.

5. Additional Fixes & Enhancements

  • Added option to always defer cache operations.
  • Bug fixes around RedisStore, TestResponse, ResponseFactory, and more :contentReference[oaicite:10]{index=10}.