💻

Fitur Baru di Laravel 11

Jul 14, 2024

Kelas Laravel - Fitur Baru di Laravel 11

Pengenalan

  • Pembicara: O. Kurniawan
  • Profesi: Technical Architect di e-commerce terbesar di Indonesia
  • Pengalaman: 13 tahun
  • Konten: Membuat konten programming di Programmer Zaman Now (website dan YouTube channel)
  • Kontak: Telegram, LinkedIn, Facebook, Instagram, YouTube, TikTok
  • Email: Untuk konsultasi perusahaan

Prasyarat

  • Pernah mengikuti kelas PHP, MySQL, dan Laravel dari Programmer Zaman Now
  • Bukan untuk pemula Laravel; sudah memahami dasar-dasar Laravel

Pembuatan Proyek Laravel 11

  • Perintah: composer create-project laravel/laravel:^11.0 belajar-laravel-11
  • Struktur folder:
    • Lebih sederhana dibanding Laravel 10
    • Contoh: App hanya memiliki Http, Controllers, Models, Providers
    • Middleware dan file lainnya disembunyikan di framework

Konfigurasi File

  • Config file: Lebih sedikit dan sederhana
  • File config tersembunyi: Masih ada di framework; bisa dipublish jika diperlukan
  • Perintah publikasi config: php artisan config:publish

Service Provider

  • Sederhana: Hanya ada 1 service provider default yaitu ApplicationServiceProvider
  • Otomatis registrasi: php artisan make:provider VobarServiceProvider otomatis menambah ke bootstrap/app.php

Routing

  • Konfigurasi routing: Di bootstrap/app.php dengan Application Builder
  • Default: Hanya untuk web dan commands
  • API Routing: Bisa ditambahkan dengan php artisan install:api

Middleware

  • Sederhana: Semuanya ada di framework
  • Manajemen Middleware: Diatur di bootstrap/app.php
  • Contoh: php artisan make:middleware LogMiddleware

Health Check

  • Fitur baru: Memastikan aplikasi berjalan normal (database, Redis, dll.)
  • Event: DiagnosingHealth
  • Perintah: Implementasikan event listener untuk pendengaran event

Artisan Baru

  • PHP Enum: php artisan make:enum NamaEnum
  • Kelas PHP: php artisan make:class NamaClass
  • Interface: php artisan make:interface NamaInterface
  • Trait: php artisan make:trait NamaTrait

Integrasi Pest untuk Unit Test

  • Library alternatif: Berbeda dengan PHPUnit
  • Instalasi: composer require pestphp/pest --dev --with-all-dependencies
  • Set up pertama kali: vendor/bin/pest --init

Default Database

  • Default: SQLite
  • Migrasi ke MySQL: Ubah ENV variables

Exception Handler

  • Lebih sederhana: Semua diatur di bootstrap/app.php pada withException
  • Contoh: Implementasi penanganan error di validation error

Once Helper Method

  • Penggunaan: Mengingat hasil kalkulasi data sebelumnya
  • Contoh: Pembungkusan kode berat agar tidak perlu dieksekusi berulang kali

Model Cast

  • Dari atribut ke function: Model casting menggunakan function casts
  • Perubahan: protected $casts menjadi public function casts()

Proses Upgrade dari Laravel 10 ke Laravel 11

  • Panduan: Dokumentasi resmi Laravel
  • Langkah-langkah: Update dependencies di composer.json
  • Pengecekan: Pastikan tidak ada error dan jalankan unit tests