panel:clear
Menghapus cached Panel manifest agar discovery dijalankan kembali pada request berikutnya.
Gunakan command ini ketika:
- Resource yang baru dibuat tidak muncul;
- Page baru tidak memiliki route;
- Widget baru tidak muncul;
- atau saat melakukan rollback.
php artisan panel:clearOutput:
INFO Panel manifest cleared.Signature
panel:clearTidak memiliki argument maupun option.
Implementasi:
// PandaPanel\Console\Commands\ClearPanelsCommand
public function handle(PandaPanel\Cache\PanelManifest $manifest): int
{
$manifest->clear();
$this->components->info('Panel manifest cleared.');
return self::SUCCESS;
}2
3
4
5
6
7
8
9
Command menghapus:
bootstrap/cache/panels.phpdan melupakan in-memory copy yang disimpan oleh instance PanelManifest.
Idempotent
Manifest yang tidak ada tetap dianggap sukses:
php artisan panel:clear
php artisan panel:clear # tetap INFO, tetap exit 02
Behavior ini penting karena command diregistrasikan sebagai optimize hook.
optimize:clear pada fresh checkout — di mana Panel manifest belum pernah dibuat — tidak boleh gagal.
Bagian dari optimize:clear
php artisan optimize:clearCommand tersebut membersihkan:
config
routes
views
events
panel manifest2
3
4
5
panel:clear diregistrasikan menggunakan key panels, berpasangan dengan panel:cache ketika optimize dijalankan.
Gejala yang Diperbaiki
Cached manifest berisi daftar class.
Saat manifest tersedia, discovery tidak dijalankan untuk class yang sudah tercakup manifest. Akibatnya class yang ditambahkan setelah cache dibuat tidak dikenal oleh Panel.
| Gejala | Yang Sebenarnya Terjadi |
|---|---|
| Resource baru tidak muncul di sidebar | Class belum ada di manifest |
| URL Resource menghasilkan 404 | Tidak ada route karena Panel tidak mengetahui class |
| Widget baru tidak muncul | Class belum ada di manifest |
| Tidak ada error di log | Ini bukan exception; Panel bekerja sesuai cached configuration |
Pada environment local, testing, atau saat debug aktif, boot dapat menampilkan warning:
[panel] The cached panel manifest is out of date: the classes under the
discovery paths have changed since `php artisan panel:cache` last ran. Until
you run `php artisan panel:clear`, anything added since then is invisible — no
route, no navigation entry, and no error to say so.2
3
4
Production sengaja tidak menampilkan warning tersebut. Production deploy diharapkan membangun cache setelah code selesai dipasang.
Menghapus Cache dari Code
use PandaPanel\Cache\PanelManifest;
app(PanelManifest::class)->clear();2
3
Return:
boolyang menunjukkan apakah file sebelumnya memang ada.
Test yang mendaftarkan Panel sendiri biasanya tidak perlu membersihkan manifest, karena Panel yang tidak ada di manifest fallback ke discovery untuk Panel itu sendiri.
Exit Code
Selalu:
0Hal yang Perlu Diperhatikan
- Command hanya membersihkan Panel manifest. Config, routes, views, dan event cache memiliki cache masing-masing. Gunakan
optimize:clearuntuk membersihkan semuanya. - Pada Octane, command tidak mengubah state worker yang sudah berjalan. Worker menyimpan loaded copy sampai direcycle, sehingga deploy tetap harus restart Octane workers.
- Jangan membersihkan manifest pada setiap request. Jika production membutuhkan clear setiap kali ada class baru, urutan deploy Anda salah: cache dibuat sebelum code selesai dipasang.
- Tanpa manifest, discovery melakukan filesystem scan per Panel per request. Ini trade-off yang tepat untuk development dan tidak ideal untuk production.