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.
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 sini, check it out!
Improved Eloquent Accessors / Mutators
Jika di versi Laravel sebelumnya kita hanya bisa membuat accessor / mutator dengan cara membuat membuat method masing-masing seperti di bawah ini:
<?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:
<?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,
);
}
}
Controller Route Groups
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.
<?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');
});
Improved Ignition Exception Page
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.
Improved route:list CLI Output
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.
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
- Release Notes — Laravel (https://laravel.com/docs/9.x/releases)
- A look at what is coming to Laravel 9 (https://laravel-news.com/laravel-9)
- What’s New in Laravel 9: A Deep Dive Into the Latest Major Release (https://kinsta.com/blog/laravel-9)