Skip to content

Conversation

@ujgsp
Copy link

@ujgsp ujgsp commented Jan 6, 2026

Deskripsi

  • Support perbaikan composer, untuk mengatasi masalah bug setelah update versi filament 2 ke 3
  • Membuat file patch: patches\filament-forms-access-level.patch
  • Menambah package cweagans\composer-patches ke require-dev baca patch ini
  • Dokumentasi disini docs/filament-compatibility.md
patches\apply-patches.php
patches\filament-forms-access-level.patch
  • Menambah konfigurasi patches scripts -> post-autoload-dump section di composer.json
"post-autoload-dump": [
            "@php patches/apply-patches.php",
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-install-cmd": [
            "@php patches/apply-patches.php"
        ],
  • Mengizinkan plugin di allow-plugins di composer.json
"allow-plugins": {
            "pestphp/pest-plugin": true
            "pestphp/pest-plugin": true,
            "cweagans/composer-patches": true
        }

📌 Kenapa perlu pakai patch dengan cweagans/composer-patches

Saat kamu upgrade dari Filament v2 ke Filament v3, ada perubahan API internal yang belum sepenuhnya kompatibel. Salah satunya adalah method getFormStatePath() di trait InteractsWithForms yang awalnya protected, tetapi di kelas lain (mis. Filament\Resources\Pages\ViewRecord) membutuhkan visibility yang lebih luas (public).

PHP memiliki aturan ketat tentang method visibility inheritance:

Method dengan access level lebih sempit (protected) tidak boleh menurunkan method yang harusnya public.
Ini karena class lain mencoba memanggil method tersebut sebagai public, dan PHP akan me‐throw fatal error jika visibilitas >tidak cocok.

Dalam kasus ini errornya:

Access level to Filament\Forms\Concerns\InteractsWithForms::getFormStatePath() must be public …

Hal ini terjadi di dalam paket Filament itu sendiri (vendor), bukan di kode aplikasi kamu. Sementara:

  • Filament 3 belum menyediakan fix resmi untuk ini pada rilis tertentu
  • Patch upstream belum masuk di versi stable
  • Kamu tidak bisa downgrade tanpa merusak versi Filament lainnya

👉 Karena itu solusi sementara tapi dapat diulang secara otomatis adalah dengan menggunakan package cweagans/composer-patches untuk mem‐patch file vendor setiap kali Composer melakukan install/update.

Plugin ini memungkinkan kamu untuk:
✅ menetapkan patch yang otomatis diaplikasikan pada vendor
✅ version control patch tersebut (disimpan di repositori kamu)
✅ tidak perlu edit vendor/ secara manual setiap kali install/update

Dengan begitu patch bisa tetap ter‐apply sampai upstream Filament benar-benar memperbaiki bug ini.
Ini adalah praktik standard untuk hotfix sementara sebelum perbaikan resmi dirilis.

📌 Dokumentasi error kompatibilitas Filament 2 → Filament 3

Ada issue resmi yang dibuat oleh pengguna Filament sendiri di GitHub yang menjelaskan error ini muncul saat upgrade dari Filament v2 ke v3, dengan pesan yang sama seperti yang kamu alami:

👉 Issue #13931 – Upgrade filament v2 to v3 didnt work
Link:
https://github.com/filamentphp/filament/issues/13931

Isi utamanya:

  • user mencoba upgrade Filament ke versi 3
  • muncul error:
Access level to Filament\Forms\Concerns\InteractsWithForms::getFormStatePath() must be public …
  • error ini terjadi di dalam paket Filament, bukan aplikasi user
  • pengguna tidak yakin bagaimana memperbaikinya karena letaknya di vendor
    👉 Ini menunjukkan bahwa masalah ini memang kompatibilitas terkait perubahan internal Filament antara v2 dan v3

Untuk isu:

Cara replikasi

  • jalankan perintah composer install patch akan otomatis diterapkan tanpa perlu manual edit. Tidak ada error lagi di Filament Forms.

@ujgsp ujgsp requested a review from apidong January 6, 2026 09:32
@ujgsp ujgsp removed the request for review from apidong January 7, 2026 01:24
@ujgsp ujgsp changed the title Perbaikan compser Perbaikan compser (masih dikerjakan) Jan 7, 2026
@ujgsp ujgsp changed the title Perbaikan compser (masih dikerjakan) Perbaikan compser Jan 7, 2026
@ujgsp ujgsp requested a review from apidong January 7, 2026 02:54
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.

2 participants