Skip to content

Upgrade Framework ke Laravel 13#693

Open
habibie11 wants to merge 11 commits into
rilis-devfrom
upgrade/laravel13
Open

Upgrade Framework ke Laravel 13#693
habibie11 wants to merge 11 commits into
rilis-devfrom
upgrade/laravel13

Conversation

@habibie11

@habibie11 habibie11 commented Jul 5, 2026

Copy link
Copy Markdown
Contributor

issue #695

🎯 Deskripsi

Pull request ini melakukan proses upgrade aplikasi Pantau dari Laravel versi sebelumnya ke Laravel 13, menggunakan arsitektur modern yang direkomendasikan oleh Laravel mulai dari versi 11. Perubahan ini menyederhanakan struktur direktori aplikasi dengan menghapus beberapa file boilerplate (Kernel, Handler, dll) dan memusatkan konfigurasi routing, middleware, serta exception handling di dalam file bootstrap/app.php.

Pembaruan ini juga menyesuaikan dependensi third-party agar kompatibel dengan ekosistem Laravel 13 dan mengatasi breaking changes seperti transisi ke Carbon versi 3 serta PHPUnit versi 12.


🛠️ Perubahan yang Dilakukan

1. composer.json

  • Memperbarui laravel/framework menjadi ^13.0.
  • Memperbarui spatie/laravel-backup menjadi ^10.0 karena versi sebelumnya tidak kompatibel dengan Illuminate 13.
  • Memperbarui laravel/tinker menjadi ^3.0.
  • Memperbarui yajra/laravel-datatables-oracle menjadi ^13.0.
  • Menghapus sementara barryvdh/laravel-debugbar karena belum tersedia versi stabil yang mendukung Laravel 13 secara penuh.

2. bootstrap/app.php

  • Menulis ulang file ini untuk menggunakan instance Application::configure().
  • Mengatur konfigurasi routing secara eksplisit via metode withRouting.
  • Mendefinisikan middleware dan kustom alias (termasuk auth, guest, abilities, ability, tracksid, web.dashboard) langsung via metode withMiddleware.
  • Mengelola penangkapan exceptions secara langsung (jika diperlukan) via metode withExceptions.

3. Migrasi Console Kernel

  • Memindahkan semua perintah terjadwal (Scheduled Commands) seperti sinkronisasi dan proses backup dari app/Console/Kernel.php langsung ke routes/console.php.

4. Konsolidasi Service Provider

  • Menghapus provider-provider usang: AuthServiceProvider, EventServiceProvider, RouteServiceProvider, dan BroadcastServiceProvider.
  • Memindahkan semua logika konfigurasi dan inisialisasi yang tersisa (seperti RateLimiter dan fungsi inisialisasi Gate) ke app/Providers/AppServiceProvider.php.

5. config/app.php

  • Menghapus referensi ke Service Providers lama yang sudah dihapus dari array providers.

6. Perbaikan Inkompatibilitas & Refaktor Kode

  • Carbon 3: Memperbaiki argumen pada fungsi addDays() di app/Http/Controllers/DashboardController.php agar menggunakan tipe data (int), karena Carbon 3 menerapkan strict type checking.
  • Konfigurasi Spatie Backup: Menambahkan MAIL_FROM_ADDRESS di file .env sebagai syarat wajib baru dari spatie/laravel-backup v10.
  • RouteServiceProvider::HOME: Mengganti semua pemanggilan konstanta RouteServiceProvider::HOME dengan string statis '/dashboard' pada berbagai Controllers dan Tests.

7. Migrasi PHPUnit 12

  • Memperbarui schema dan format konfigurasi di phpunit.xml ke standar PHPUnit 12 melalui perintah otomasi vendor/bin/phpunit --migrate-configuration.

✅ Test Cases yang Diimplementasikan

  • Aplikasi berhasil dijalankan menggunakan php artisan serve tanpa adanya error missing classes.
  • Semua konfigurasi dan service provider berhasil di-boot (diverifikasi dengan berhasilnya php artisan package:discover).
  • Scheduled commands terdaftar dan dapat dikenali (dapat dicek via php artisan schedule:list).
  • Seluruh unit test terkait Dashboard dan fungsionalitas core telah berjalan sukses (php artisan test).
  • Validasi akses kustom (Region Access) berhasil dites (PenggunaRegionAccessTest passed) setelah penyesuaian alias middleware di bootstrap/app.php.

📸 Cara Menjalankan Uji Coba Manual

  1. Hapus instalasi dependensi lama dan install yang baru:
    composer update -W
  2. Jalankan pembersihan cache Laravel:
    php artisan config:clear
    php artisan route:clear
    php artisan view:clear
  3. Lakukan pengujian core features:
    • Jalankan php artisan test untuk memastikan semua integrasi berjalan normal.
    • Buka halaman Dashboard Pantau dan pastikan data statistik desa tampil dengan benar.
    • Pastikan bahwa pesan peringatan terkait backup ("Gagal Backup Otomatis...") yang ditampilkan pada widget alert tidak menghasilkan TypeError akibat integrasi Carbon yang baru.

📸 Screenshot atau Video

image image

⚠️ Catatan Penting

Karena adanya perombakan besar pada struktur bootstrap, upgrade ini berstatus mayor. Harap dipastikan konfigurasi email pada .env server terpasang dengan baik (MAIL_FROM_ADDRESS minimal diset ke alamat sistem yang valid seperti no-reply@example.com), karena ketiadaan parameter ini dapat memicu exception fatal pada package spatie/laravel-backup.

@github-actions

github-actions Bot commented Jul 5, 2026

Copy link
Copy Markdown

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #693

@habibie11 habibie11 changed the title upgrade laravel 13 Upgrade Framework ke Laravel 13 Jul 6, 2026
@habibie11
habibie11 requested a review from vickyrolanda July 7, 2026 04:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant