Perubahan dan Fitur Baru di Laravel 11
Laravel 11
Laravel 11 sudah release, dengan beberapa perubahan termasuk minimum PHP v8.2, struktur direktori baru, dan beberapa fitur yang sangat menarik. Mari kita bahas satu persatu.
Artikel ini diperuntukkan untuk anda yang sudah familiar dengan framework Laravel. Jika belum, anda bisa baca apa itu Laravel di website resminya https://laravel.com/
Minimum versi PHP
Laravel 11 membutuhkan minimum PHP v8.2. Jika anda masih menggunakan versi dibawahnya, mungkin ini saat terbaik untuk upgrade dan mulai explore fitur-fitur baru di Laravel 11.
Instalasi Laravel 11
Sebelum menginstal Laravel 11, silahkan pastikan anda telah menginstal PHP 8.2 dan composer. Setelah itu anda dapat menjalankan instalasi Laravel 11 dengan composer create-project command.
composer create-project laravel/laravel:^11.0 nama-aplikasi Atau, alternatif lain anda bisa menggunakan laravel installer yang diinstall secara global
composer global require laravel/installer
laravel new nama-aplikasi Setelah proses instalasi selesai, silahkan masuk ke direktori nama-aplikasi yang baru saja dibuat dan jalankan Laravel artisan command.
cd nama-aplikasi
php artisan serve SQLite 3.35.0+
Secara default Laravel 11 menggunakan driver sqlite. Hal ini membuat project setup lebih simpel karena tidak membutuhkan instalasi software tambahan. Namun perlu diperhatikan bahwa Laravel 11 membutuhkan versi SQLite 3.35.0 atau lebih.
Struktur Aplikasi Minimalis
Jika kita perhatikan, struktur direktori Laravel 11 berbeda dengan versi Laravel sebelumnya. Untuk versi ini, struktur direktori lebih minimalis dan simpel. Laravel 11 memangkas kurang lebih 69 file dari versi sebelumnya. Mantap kan. Berikut beberapa rangkuman perubahan struktur direktori Laravel 11
- Beberapa file seperti
app/Http/Kernel.phpdanapp/Console/Kernel.phpsudah tidak ada di versi yang terbaru ini. - Semua proses
bootstrappingaplikasi terpusat di satu filebootstrap/app.php. Controllersudah tidak extend dari file lain- Tidak ada direktori
middleware - Sudah tidak ada file
Exception/Handler.php
Terus bagaimana kita meregistrasikan provider, middleware, route, exception handler? Semua sekarang terpusat di bootstrap/app.php. Berikut contoh tampilan code di file tersebut
<?php
use IlluminateFoundationApplication;
use IlluminateFoundationConfigurationExceptions;
use IlluminateFoundationConfigurationMiddleware;
return Application::configure(basePath: dirname(__DIR__))
->withProviders([
// register providers di sini
])
->withRouting(
web: __DIR__.'/../routes/web.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create(); Untuk yang penasaran dan ingin tahu lebih detail mengenai struktur baru Laravel 11 ini, anda bisa lihat detailnya di sini.
Model casts
Model casts sekarang didefinisikan sebagai method, bukan property. Hal ini membuat kita lebih leluasa menambahkan casting di Model secara dinamis, karena kita dapat memanggil fungsi, mengimplementasikan custom class, dan lain-lain.
// Model casting versi lama
protected $casts = [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
// Model casting versi Laravel 11
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
'options'=› AsEnumCollection::of(UserOption::class),
];
} Dumpable Trait
Sekarang kita dapat menggunakan trait Dumpable di kelas yang kita buat:
class Stringable implements JsonSerializable, ArrayAccess
{
use Conditionable, Dumpable, Macroable, Tappable;
str('foo')->dd();
str('foo')->dump(); Direktori Config
Beberapa file config di Laravel 11 sudah otomatis diload dari internal framework. Jadi tersisa beberapa file config:
config
├── app.php
├── auth.php
├── cache.php
├── database.php
├── filesystems.php
├── logging.php
├── mail.php
├── queue.php
├── services.php
└── session.php Jika kita ingin mempublish config lain, tinggal jalankan artisan command
php artisan config:publish Nanti akan ada pertanyaan config mana yang akan dipublish.
Tambahan Artisan Make
Beberapa artisan command baru telah ditambahkan sehingga mempermudah kita untuk membuat class, enum, interface dan trait:
php artisan make:class
php artisan make:enum
php artisan make:interface
php artisan make:trait Kesimpulan
Di artikel ini saya hanya menjelaskan beberapa perubahan dan fitur-fitur baru yang ada di Laravel 11. Masih banyak fitur lain yang bisa anda explore sendiri di Laravel versi terbaru ini. Fitur-fitur dan perubahan tersebut kita harapkan dapat mengoptimalkan kita saat membuat project dengan framework Laravel. Mungkin beberapa fitur juga akan mengalami perubahan, jadi pastikan tetap update dari halaman resminya https://laravel.com.
