Laravel Fitur Baru Laravel 11

Download as pdf or txt
Download as pdf or txt
You are on page 1of 51

Fitur Baru Laravel 11

Eko Kurniawan Khannedy


Eko Kurniawan Khannedy
● Technical architect at one of the biggest
ecommerce company in Indonesia
● 13+ years experiences
● www.programmerzamannow.com
● youtube.com/c/ProgrammerZamanNow
Eko Kurniawan Khannedy
● Telegram : @khannedy
● Linkedin : https://www.linkedin.com/company/programmer-zaman-now/
● Facebook : fb.com/ProgrammerZamanNow
● Instagram : instagram.com/programmerzamannow
● Youtube : youtube.com/c/ProgrammerZamanNow
● Telegram Channel : t.me/ProgrammerZamanNow
● Tiktok : https://tiktok.com/@programmerzamannow
● Email : echo.khannedy@gmail.com
Sebelum Belajar
● Kelas PHP dari Programmer Zaman Now
● Kelas MySQL dari Programmer Zaman Now
● Kelas Laravel dari Programmer Zaman Now
Membuat Project
Membuat Project
● composer create-project laravel/laravel=version belajar-laravel-11
● https://packagist.org/packages/laravel/laravel
Struktur Folder Lebih Sederhana
Struktur Folder Lebih Sederhana
● Struktur folder di Laravel 11 lebih sederhana
dibanding Laravel 10
● Namun bukan berarti fitur Laravel 10
dihapus
● Beberapa file seperti Kernel, Middleware,
dan lain-lain sekarang berada di dalam
framework Laravel
● Sehingga aplikasi kita lebih bersih dari kode
yang mungkin jarang kita gunakan
Config File Lebih Sederhana
Config File Lebih Sederhana
● Di Laravel 11, file Config lebih sedikit
● Beberapa Config file dihapus, terutama yang
jarang digunakan
● Namun bukan berarti hilang, tapi tetap ada
di Framework Laravel nya
Publish Config
● Jika kita butuh config file yang dihapus di Laravel 11, kita bisa gunakan perintah :
php artisan config:publish
● Untuk menampilkan kembali config file tersebut
Service Provider Lebih Sederhana
Service Provider
● Di Laravel 10, banyak sekali Service Provider yang pertama kali dibuat di Project
● Di Laravel 11, semua Service Provider tersebut disimpan di dalam framework
Laravel, sehingga di Project hanya tersedia AppServiceProvider
● Di Laravel 10, untuk membuat Service Provider, kita perlu registrasikan di
config/app.php
● Di Laravel 11, untuk meregistrasikan Service Provider, kita cukup gunakan file
bootstrap/providers.php
Membuat Service Provider
● php artisan make:provider FooBarServiceProvider
● Secara otomatis akan ditambahkan ke file bootstrap/providers.php
Routing Lebih Sederhana
Routing Lebih Sederhana
● Di Laravel 10, konfigurasi Routing dilakukan di RouteServiceProvider
● Di Laravel 11, konfigurasi Routing lebih sederhana, dilakukan menggunakan
ApplicationBuilder di file bootstrap/app.php
● Secara default Routing hanya disediakan untuk Web dan Command, tidak
disediakan untuk API
API Route Optional
API Route Optional
● Di Laravel 10, secara default terdapat API Routing, di Laravel 11, hal itu menjadi
Optional
● Jika kita ingin menambahkan API Routing, kita bisa gunakan perintah :
php artisan install:api
● Maka akan ditambahkan Routing untuk API di bootstrap/app.php
● Dan juga akan ditambahkan file Routing di routes/api.php
Middleware Lebih Sederhana
Middleware Lebih Sederhana
● Sebelumnya, ada banyak sekali Middleware yang dibuat ketika membuat project
di Laravel 10
● Di Laravel 11, semua Middleware tersebut akan disimpan di Framework Laravel
● Dan jika ingin mengelola Middleware, kita bisa gunakan class Middleware di file
bootstrap/app.php
Membuat Middleware
● php artisan make:middleware LogMiddleware
Kode : Log Middleware
Kode : Menambahkan Middleware
Health Check
Health Check
● Laravel 11 memiliki fitur Health Check
● Fitur ini digunakan untuk memastikan apakah aplikasi kita sehat atau tidak
● Secara default, kita bisa mengakses URL /up pada aplikasi Laravel 11, atau bisa
kita ubah pada file bootstrap/app.php
Menambah Health Check
● Saat endpoint Health Check diakses, Laravel akan mengirim event
DiagnosingHealth
● Kita bisa membuat Event Listener untuk DiagnosingHealth, lalu melakukan
sesuatu, misal mengecek Redis, mengecek Database, dan lain-lain
● Jika error, kita bisa throw error pada Event Listener, dan secara otomatis Health
Check akan gagal sehingga aplikasi dianggap tidak sehat
Membuat Event Listener
● Untuk membuat Event Listener, kita bisa menggunakna perintah :
php artisan make:listener RedisCheckEventListener
Kode : Redis Check Event Listener
Perintah Artisan Baru
Perintah Artisan Baru
● Laravel 11 menyediakan perintah artisan baru untuk membuat beberapa hal di
PHP, dan ini sangat membantu ketika membuat aplikasi
● php artisan make:enum : Untuk membuat PHP Enum
● php artisan make:class : Untuk membuat PHP Class
● php artisan make:interface : Untuk membuat PHP Interface
● php artisan make:trait : Untuk membuat PHP Trait
Integrasi dengan Pest Unit Test
Pest Unit Test
● Saat ini, ada Test Framework yang sedang populer di PHP bernama Pest
● Ini adalah alternatif lain dari PHPUnit untuk melakukan Unit Test
● https://pestphp.com/
Menginstall Pest
● Untuk menginstall Pest sebagai Test Framework di Laravel, kita bisa hapus dulu
file PHPUnit di phpunit.xml dan file unit test yang menggunakan PHP Unit
● Selanjutnya kita bisa install Pest menggunakan perintah :
composer require pestphp/pest --dev --with-all-dependencies
● Setelah itu, kita bisa setup seluruh file yang dibutuhkan oleh Laravel
menggunakan perintah :
./vendor/bin/pest --init
● Untuk menjalankan Unit Test, kita bisa gunakan perintah :
./vendor/bin/pest
Membuat Unit Test
● Jika kita sudah mengganti PHPUnit menjadi Pest
● Saat kita buat Unit Test baru menggunakan perintah :
php artisan make:test
● Maka Laravel akan menggunakan Pest secara otomatis
Default Database Sqlite
Default Database Sqlite
● Saat pertama project Laravel 11 dibuat, secara default Laravel akan menggunakan
database Sqlite
● Jika kita ingin menggantinya menjadi database MySQL misalnya, kita bisa ganti
pada file .env
Kode : Mengubah Database
Exception Handler Lebih Sederhana
Exception Handler Lebih Sederhana
● Di Laravel 10, Exception Handler disimpan di Exceptions/Handler.php
● Di Laravel 11, semua digabung di bootstrap/app.php
● Dan cara menambahkan Exception Handler lebih mudah
Membuat Exception dan Controller
● php artisan make:exception ValidationError
Kode : Konfigurasi Exception Handler
Once Helper Method
Once Helper Method
● Laravel 11 menambah sebuah global method bernama once(callbak)
● once() method ini digunakan untuk mengingat hasil sebelumnya, sehingga ketika
kita panggil lagi hasilnya, maka akan mengembalikan nilai sebelumnya, tanpa
mengulang mengeksekusi callback function nya
● Ini cocok untuk membungkus kode yang sangat berat sehingga tidak perlu
dipanggil berkali-kali jika memang hasilnya akan selalu sama
Kode : Math Helper Class
Kode : Test Math Helper
Model Casts
Model Casts
● Attribute Casting adalah fitur di Eloquent untuk melakukan konversi tipe data
secara otomatis dari tipe data di database, dengan tipe data yang ada di PHP
● Di Laravel 10, defaultnya akan menggunakan attribute $casts di Model
● Namun di Laravel 11, diubah menjadi Function casts
Kode : User Model
Upgrade dari Laravel 10
Upgrade Laravel 10 ke Laravel 11
● Mari kita coba upgrade RESTful API project sebelumnya dari Laravel 10 ke
Laravel 11
● https://github.com/programmerzamannow/belajar-laravel-restful-api
● https://laravel.com/docs/11.x/upgrade
Penutup

You might also like