Laravel 9 Rilis! Apa Saja yang Baru di Laravel 9?

Cek artikel ini di Medium: @ngodingbang/laravel-9-rilis-apa-saja-yang-baru-di-laravel-9-886c730349fa

This article has been translated into English version: What’s New in Laravel 9? Let’s dive into it!

Pendahuluan

Laravel baru saja merilis versi terbarunya di versi 9 pada tanggal 8 Februari 2022 lalu. Menariknya jika di versi sebelumnya Laravel masih mendukung penggunaan PHP dengan versi minimum 7.2, Laravel kali ini menjadi versi pertama yang mengharuskan kita untuk menggunakan PHP dengan versi minimum 8.0.2. Dan jika kita lihat pada gambar di bawah, Laravel 9 akan tetap menjadi versi terbaru selama 1 tahun ke depan hingga Laravel 10 di rilis di tanggal 7 Februari 2023.

Support Policy dari Laravel 6 hingga Laravel 10 (https://laravel.com/docs/9.x/releases#support-policy)
Support Policy dari Laravel 6 hingga Laravel 10 (https://laravel.com/docs/9.x/releases#support-policy)

Nah, di konten kali ini kita akan membahas apa saja fitur baru dan perubahan yang dibawa oleh Laravel di versinya yang terbaru ini yaitu versi 9. Tapi buat kamu nih yang suka ngomong:

“Yah baru juga belajar Laravel 7, udah keluar aja Laravel 8. Baru juga kemarin belajar Laravel 8, sekarang udah rilis aja yang versi 9 😭”

Tenang! Laravel 9 kali ini sebenarnya tidak memiliki perbedaan yang terlalu signifikan dengan Laravel 8. Memang ada banyak fitur baru yang diperkenalkan di versi terbaru ini, tapi mereka tidak mengurangi ataupun menghapus fitur-fitur yang sudah ada di versi sebelumnya. Sehingga bagi kamu yang sudah familiar atau terbiasa menggunakan Laravel 7 atau 8 harusnya gak bakal perlu beradaptasi terlalu banyak ketika menggunakan versi 9 ini. Jadi berikut ini fitur-fitur baru yang ada di Laravel 9 yang berhasil NgodingBang rangkum dari dokumentasi resmi mereka di sinicheck it out!

Jika di versi Laravel sebelumnya kita hanya bisa membuat accessor / mutator dengan cara membuat membuat method masing-masing seperti di bawah ini:

Cara membuat accessor/mutator di versi Laravel sebelumnya

<?php

use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    public function getNameAttribute($value)
    {
        return strtoupper($value);
    }

    public function setNameAttribute($value)
    {
        $this->attributes['name'] = $value;
    }
}

Maka sekarang kita cukup membuat satu method yang mengembalikan return bertipe Illuminate\Database\Eloquent\Casts\Attribute seperti di bawah ini:

Cara membuat accessor/mutator di Laravel 9

<?php

use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;

class MyModel extends Model
{
    public function name(): Attribute
    {
        return new Attribute(
            get: fn ($value) => strtoupper($value),
            set: fn ($value) => $value,
        );
    }
}

Sekarang kita bisa menggunakan method controller() yang disediakan ketika mendeklarasikan sebuah route group yang semua route-nya menggunakan controller class yang sama seperti gambar di bawah ini.

Controller Route Groups di Laravel 9

<?php

use App\Http\Controllers\OrderController;
use Illuminate\Support\Facades\Route;

Route::controller(OrderController::class)->group(function () {
    Route::get('/orders/{id}', 'show');
    Route::post('/orders', 'store');
});

Jika default error page di Laravel versi 8 menggunakan library dari facade/ignition, maka di Laravel versi 9 saat ini diganti sepenuhnya menggunakan library spatie/laravel-ignition dari Spatie. Ignition adalah sebuah open source library yang mengelola halaman debug untuk Laravel versi 9 yang dilengkapi dengan fitur seperti light / dark themes, “open in editor” yang bisa dikustomisasi, dan masih banyak lagi.

Ignition page terbaru di Laravel 9 menggunakan spatie/laravel-ignition (Sumber: https://laravel.com/docs/9.x/releases#exception-page)
Ignition page terbaru di Laravel 9 menggunakan spatie/laravel-ignition (Sumber: https://laravel.com/docs/9.x/releases#exception-page)

Mungkin banyak di antara kalian yang mengalami kesulitan ketika ingin melihat daftar route yang ada di projek Laravel milik kalian dengan menggunakan command php artisan route:list. Tapi di versi 9 ini Laravel merombak ulang output dari route:list sehingga kita bisa membaca daftar route yang ada di projek kita dengan jauh lebih menyenangkan. Kini tampilan dari route:list sangat mirip seperti daftar isi yang biasa kalian buat ketika sedang menyusun skripsi di kampus.

Fitur route:list di Laravel 9 yang mengalami perubahan yang sangat signifikan jika dibandingkan dengan versi Laravel sebelumnya (Sumber: https://laravel.com/docs/9.x/releases#improved-route-list)
Fitur route:list di Laravel 9 yang mengalami perubahan yang sangat signifikan jika dibandingkan dengan versi Laravel sebelumnya (Sumber: https://laravel.com/docs/9.x/releases#improved-route-list)

Penutup

Sebenarnya masih ada banyak fitur baru di Laravel 9 yang tidak BangNgoding sebutkan di sini. Jadi bagi kamu yang ingin melihat lebih lanjut apa saja perubahan yang dibawa Laravel di versi 9 ini, kamu bisa mengunjungi dokumentasi resmi dari Laravel di https://laravel.com/docs/9.x/releases.

Bagaimana menurutmu? Apakah fitur dan perubahan yang Laravel bawa di versi terbaru kali ini worth it untuk kamu pakai di projekmu saat ini? Tulis pendapatmu dan mari berdiskusi di kolom komentar ya!


Sumber

Konten Terkait