microweber-packages / microweber-filament-registry
Standalone Filament panel registry for dynamically registering resources, pages, widgets, plugins and clusters. Reusable across any Laravel app with Filament panels.
Package info
github.com/microweber-packages/microweber-filament-registry
pkg:composer/microweber-packages/microweber-filament-registry
Requires
- php: ^8.1
- illuminate/support: ^10.0|^11.0|^12.0|^13.0
- microweber-packages/microweber-package: *
- spatie/laravel-package-tools: ^1.16
Requires (Dev)
- filament/filament: ^3.0|^4.0|^5.0
- livewire/livewire: ^3.0|^4.0
- orchestra/testbench: ^8.0|^9.0|^10.0
- phpunit/phpunit: ^10.0|^11.0
Suggests
- filament/filament: Required for Filament panel integration
- livewire/livewire: Required for Livewire component testing
Provides
None
Conflicts
None
Replaces
- microweber-packages/filament-registry: *
This package is auto-updated.
Last update: 2026-11-03 17:06:38 UTC
README
A standalone Laravel package for dynamically registering Filament panel components (resources, pages, widgets, plugins, clusters). Reusable across any Laravel application with Filament panels.
Installation
composer require microweber-packages/microweber-filament-registry
The service provider auto-registers via Laravel's package discovery.
Usage
Register Components
use MicroweberPackages\FilamentRegistry\Facades\FilamentRegistry; // In a service provider's register() method: FilamentRegistry::registerResource(UserResource::class, MyPanelProvider::class); FilamentRegistry::registerPage(SettingsPage::class, MyPanelProvider::class); FilamentRegistry::registerWidget(StatsWidget::class, MyPanelProvider::class); FilamentRegistry::registerPlugin(MyPlugin::class, MyPanelProvider::class); FilamentRegistry::registerCluster(MyCluster::class, MyPanelProvider::class);
Retrieve Components in a Panel Provider
use MicroweberPackages\FilamentRegistry\Facades\FilamentRegistry; class MyPanelProvider extends PanelProvider { public function panel(Panel $panel): Panel { return $panel ->resources(FilamentRegistry::getResources(self::class)) ->pages(FilamentRegistry::getPages(self::class)) ->widgets(FilamentRegistry::getWidgets(self::class)) // ... } }
Multiple Panels
Components are scoped by panel provider class and panel ID:
FilamentRegistry::registerResource(AdminResource::class, AdminPanel::class, 'admin'); FilamentRegistry::registerResource(FrontendResource::class, FrontendPanel::class, 'frontend');
Default Scope
Set a default scope so you don't have to pass it every time:
FilamentRegistry::setDefaultScope(MyPanelProvider::class); FilamentRegistry::registerResource(UserResource::class); // uses MyPanelProvider scope
Testing
composer test
License
MIT