Mengenal Apa Saja yang Baru di Laravel 11


Laravel merupakan sebuah framework bahasa PHP yang cukup populer di kalangan programmer. Revolusi yang dibawa oleh Laravel sangat memudahkan programmer dalam mengembangkan sebuah website. Sejak pertama kali diluncurkan, saat ini Laravel sudah mencapai versi 11. Dalam artikel ini, kita akan membahas apa saja yang baru di Laravel 11.

PHP Version

Kini syarat minimum untuk menjalankan framework Laravel 11 kita memerlukan versi PHP v8.2

Halaman “Welcome” Berubah

Halaman “welcome” juga kini berubah menjadi lebih baru. Pada halaman ini menampilkan informasi dokumentasi, Laracasts, News dan ekosistem laravel.

Http atau Kernel dihapus

<?php

use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;

return Application::configure(basePath: dirname(__DIR__))
   ->withRouting(
       web: __DIR__.'/../routes/web.php',
       commands: __DIR__.'/../routes/console.php',
       health: '/up',
   )
   ->withMiddleware(function (Middleware $middleware) {
       //
   })
   ->withExceptions(function (Exceptions $exceptions) {
       //
   })->create();

Default Route

Pada Laravel 11, hanya terdapat dua route yaitu console.php dan web.php. Apabila kamu ingin memiliki route lainnya seperti channels.php dan api.php, kamu bisa membuatnya sendiri menggunakan perintah artisan seperti : 

#api
php artisan install:api

#channel 
php artisan install: broadcasting

Lalu kita perlu menghilangkan komentar pada file bootstrap/app.php

<?php


use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;


return Application::configure(basePath: dirname(__DIR__))
   ->withRouting(
       web: __DIR__.'/../routes/web.php',
       api: __DIR__.'/../routes/api.php',
	commands: __DIR__.'/../routes/console.php',
channels: __DIR__.'/../routes/channels.php',
       health: '/up',
   )
   ->withMiddleware(function (Middleware $middleware) {
       //
   })
   ->withExceptions(function (Exceptions $exceptions) {
       //
   })->create();

Model Cast 

Pada versi sebelumnya, apabila kita ingin casting column pada model, yang dilakukan adalah 

app/Models/User.php
protected $casts = [
	‘email_verified_at’ => ‘datetime’,
	‘password’ => ‘hashed’,
];

Sekarang sudah berubah menjadi
app/Models/User.php
protected casts(): array 
{
return [
	‘email_verified_at’ => ‘datetime’,
	‘password’ => ‘hashed’,
   ];
}

Dumpable Trait 

Untuk menggunakan fungsi dd atau dump kini kita dapat menggunakan trait Dumpable di kelas yang dimiliki

class Carbon extends BaseCarbon
{
	Use Conditionable, Dumpable;
	today()->dd();

Slim FIle

Saat ini pada folder app hanya menyisakan 3 files dan 4 folders.

app
├── Http
│   └── Controllers
│       ├── Controller.php
├── Models
│   └── User.php
└── Providers
    └── AppServiceProvider.php

Slim Migration

Saat ini default file migration hanya ada 3 file yaitu users, cache dan jobs.

database/migrations
├── 0001_01_01_000000_create_users_table.php
├── 0001_01_01_000001_create_cache_table.php
└── 0001_01_01_000002_create_jobs_table.php

Upgrade dari Laravel v10 ke v11

Untuk upgrade dari versi 10 ke 11 tidak membutuhkan modifikasi apapun. Apabila ingin melakukan upgrade, cukup ubah versi di file composer.json lalu pastikan kompatibilitas dengan third-party package yang digunakan

Kesimpulan

Laravel 11 membawa perubahan yang signifikan pada struktur file dan beberapa fitur tambahan namun tetap mengedepankan kenyamanan penggunanya karena tidak perubahan yang terjadi tidak terlalu signifikan dan esensi dari penggunaan framework masih tetap sama

– Writer : Muhammad Satria Rajendra (Back-end)