Laravel 12 Installation & New Features

Laravel 12 Installation & New Features

In this post, I will show you Laravel 12 Installation & New Features and enhancement and let’s review it together. still laravel 12 documents adding more features but right you can review it from github repo.

Laravel 12 Installation & New Features Overview

Installing Laravel 12

Laravel 12 is officially scheduled for release on February 24, 2025. To install the early version, use the following command:

composer create-project --prefer-dist laravel/laravel Laravel12

you will see the new brand home page of laravel 12:

New Features in Laravel 12

Let’s see the one by one features:

1. Introduction of nestedWhere() for Complex Queries

Laravel 12 introduces the `nestedWhere()` method, simplifying complex query structures. You Can Learn Wire Click Event in Laravel Livewire 3

Before:

$products = Product::select("*")
            ->where("status", 1)
            ->where(function($query) {
                $query->where("price", "orWhere("discount", ">", 25);
            })
            ->get();

After:

$products = Product::select("*")
            ->where("status", 1)
            ->nestedWhere("price", "", 25)
            ->get();

2. Upgrade to Carbon 3

Laravel 12 replaces Carbon 2 with Carbon 3, introducing improved date and time handling.

3. Str::is() Now Matches Multiline Strings

The `Str::is()` helper (and `str()->is()`) now correctly matches multiline strings using the regex `s` modifier. Previously, wildcard patterns (`*`) did not match newline characters.

Str::is('*', $multilineString); // false
Str::is('first*', $multilineString); // false
Str::is("first\n*", $multilineString); // false
Str::is("first\nsecond\n*", $multilineString); // true

4. Enhanced Security with secureValidate()

Laravel 12 introduces `secureValidate()` for stronger password validation.

Before:

$request->validate(['password' => 'required|min:8']);

After:

$request->secureValidate(['password' => 'required|min:8|strong']);

5. apiVersion() for API Development

Laravel 12 natively supports GraphQL and introduces `apiVersion()` for improved API versioning.

Before:

Route::get("v1/users", [UserController::class, "index"]);

After:

Route::apiVersion(1)->group(function() {
    Route::get("users", [UserController::class, "index"]);
});

6. Enhanced Debugging Tools

Laravel 12 introduces AI-powered debugging assistance, featuring a new `debug()` method to diagnose issues and suggest solutions in real time.

debug($variable)->suggest();

7. Concurrency Result Index Mapping

When using `Concurrency::run()` with an associative array, the results now maintain their associated keys:

$result = Concurrency::run([
    'task-1' => fn () => 1 + 1,
    'task-2' => fn () => 2 + 2,
]);

// ['task-1' => 2, 'task-2' => 4]

8. Image Validation Now Excludes SVGs by Default

The `image` validation rule no longer allows SVG images by default. To include SVGs, explicitly allow them:

'photo' => 'required|image:allow_svg'

This Post Has One Comment

  1. ShbyVilky

    Купить Хавейл – только у нас вы найдете разные комплектации. Быстрей всего сделать заказ на новый haval jolion можно только у нас!
    [url=https://jolion-ufa1.ru]haval джулион[/url]
    хавейл джолион – [url=http://jolion-ufa1.ru]https://jolion-ufa1.ru[/url]

Leave a Reply