Hai Sobat BWA!🙌
Laravel versi 11 telah dirilis pada tanggal 12 Maret 2024 loh! Dengan adanya versi terbaru dari Laravel, ada beberapa perubahan dari versi sebelumnya. Contoh sederhananya, ada sedikit perubahan pada cara pembuatan route dan perubahan welcome screen Laravel. Laravel 11 dirancang agar proses web development lebih mudah dikelola dan diakses. Nah, pasti kalian penasaran kan apa aja sih fitur-fitur terbaru Laravel 11?
Simak artikel berikut sampai habis ya!
1. Adanya Perintah Artisan Baru
Pada Laravel 11 tersedia beberapa artisan command terbaru yang semakin mempermudah kita sebagai developer.
php artisan make:trait
= Untuk membuat PHP Traitphp artisan:make interface
= Untuk membuat PHP Interfacephp artisan make:class
= Untuk membuat PHP Classphp artisan make:enum
= Untuk membuat PHP Enum
2. Struktur Folder Lebih Sederhana
Jika dibandingkan dengan Laravel 10, struktur folder pada Laravel 11 lebih sederhana, sehingga aplikasi kita lebih terstruktur karena mengurangi adanya file-file yang mungkin jarang digunakan. Contohnya saja pada folder app, Laravel 11 hanya menampilkan 3 folder utama yaitu Http, Models, dan Providers.
3. Default Route yang Berbeda
Jika pada Laravel 10 tersedia 4 macam route, berbeda dengan Laravel 11 yang hanya menyediakan route untuk Web dan Console. Namun, jika kita ingin menambahkan API routing, kita bisa menambahkannya menggunakan perintah php artisan install:api
dan perintah php artisan install:broadcasting
untuk menambahkan routes channel.php.
4. File Config Lebih Sederhana
Pada Laravel 11, beberapa config file dihapus terutama pada beberapa file yang jarang digunakan. Berikut ini adalah list config file yang ada pada Laravel 11.
Namun, jika kita tetap membutuhkan file config yang lain, kita tetap bisa menggunakannya dengan menggunakan perintah php artisan config:publish
.
5. Perubahan pada Middleware
Jika sebelumnya file Middleware terletak pada direktori app/Http, pada Laravel 11 semua middleware tersebut disimpan pada Framework Laravel sendiri. Jika kita ingin mengelola middleware, kita bisa menggunakan class Middleware pada file bootstrap/app.php.
6. Tampilan “Welcome” yang Berubah
Meskipun hal ini tidak terlalu penting, perbedaan ini cukup signifikan jika dibandingkan Laravel 10. Laravel memperbarui tampilan “welcome” nya pada pembaruan versi kali ini.
7. Perubahan pada Providers
Pada Laravel 10, file Providers terletak pada direktori app dan memuat banyak file yang mungkin hanya kita gunakan sebagian. Dan jika ingin membuat Service Provider, kita perlu menambahkannya pada file config/app.php. Nah, pada Laravel 11, tidak ada lagi file Providers yang terletak pada folder app. Kita hanya perlu menggunakan file yang ada pada direktori bootstrap/providers.php jika ingin menambahkan Service Provider.
8. Penggunaan Exception Handler
Pada Laravel 10, Exception Handler disimpan pada direktori Exceptions/Handler.php. Sekarang, cara menambahkan Exception Handler lebih mudah dan semua digabung pada file bootstrap/app.php.
9. Model Casts
Attribute Casting adalah sebuah fitur pada Eloquent untuk melakukan konversi tipe data secara otomatis dari tipe data di database dengan tipe data di PHP. Pada Laravel 10, defaultnya akan menggunakan attribute $casts
pada model, sedangkan pada Laravel 11 diubah menjadi Function casts. Hal ini membuat kita lebih fleksibel dalam menggunakan casting, contohnya seperti mengimplementasikan class
atau function
lain.
protected $casts = [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
Penggunaan atribut $casts pada Laravel versi 10
protected function casts(): array
{
return [
'email_verified_at' => 'datetime',
'password' => 'hashed',
];
}
Penggunaan function casts pada Laravel 11
10. Default Database
Saat menggunakan Laravel 11, secara default Laravel akan menggunakan database Sqlite. Namun, jika kita ingin menggunakan MySQL sebagai database, kita tetap bisa menggunakannya dengan mengganti DB_CONNECTION pada file .env
.
11. Slim Migration
Pada project yang dibuat dengan Laravel 11, hanya ada 3 migration yang dibawa secara default yaitu:
Sedangkan pada versi sebelumnya, ada file migrasi untuk reset_tokens
dan personal_access_tokens
.
12. Console Kernel Dihapus
Pada Laravel 11, file app/Console/Kernel.php
sekarang sudah tidak ada lagi. Sekarang, file console tersedia secara default pada direktori routes dan semua yang semula dilakukan pada file Kernel.php sekarang dipindahkan pada file Console.php.
Perbedaan Laravel 10 dan Laravel 11
Laravel 10 | Laravel 11 |
Menggunakan MySQL sebagai default database | Default database menggunakan Sqlite |
Terdapat banyak file Providers yang mungkin jarang digunakan | Penggunaan Providers diatur dalam file bootstrap/providers.php |
File Middleware terletak dalam direktori app/Http | Pengelolaan Midlleware menggunakan classdalam file bootstrap/app.php |
Terdapat 4 file dalam direktori routes (api.php, web.php, channels.php, console.php) | Hanya ada 2 file dalam direktori routes dan jika ingin menggunakan API routing harus install terlebih dahulu |
Terdapat banyak direktori pada folder app | Struktur folder app lebih sederhana |
Kesimpulan
Itulah beberapa perubahan dari Laravel 10 ke Laravel 11 yang tidak terlalu signifikan. Banyaknya struktur folder yang diubah, yaitu tidak ada lagi file Kernel.php, route api yang harus di-install secara manual, dan adanya perubahan pada folder Middleware. Beberapa perubahan tersebut pastinya dilakukan agar proses development lebih cepat dan efisien. Dengan banyaknya alat dan fitur baru yang disertakan, Laravel akan tetap menjadi pilihan utama bagi developer untuk membangun sebuah aplikasi website yang kuat. Untuk mempelajari lebih lanjut tentang Laravel 11, kalian dapat mempelejarinya melalui Laravel Documentation Versi 11. Di sana, sudah tersedia banyak documentation yang nantinya akan kalian gunakan sebagai referensi dalam pengembangan aplikasi web.
Semoga artikel ini dapat bermanfaat ya! Dan bagi kalian yang tertarik untuk mempelajari lebih lanjut tentang Laravel, kalian bisa mempelajarinya secara gratis melalui BuildWithAngga loh! Jangan lupa kepoin kelas-kelasnya ya! Sampai jumpa di artikel selanjutnya🙌