jeffersongoncalves/filament-open-hours
Filament Open Hours adds a ready-to-use field and model for managing weekly business opening hours in Filament admin panels. Define multiple time slots per day, handle exceptions, and edit schedules through a clean, intuitive UI.
Treat 3.0.0 as a Filament 5.x compatibility major. Confirm your application is already on Filament 5.x before requiring it; if you are still on Filament 4, stay on the previous package major.
Minimal setup:
composer require vendor/package:^3.0
->plugin(PackagePlugin::make())
// or
->plugins([
PackagePlugin::make(),
])
php artisan migrate
php artisan filament:assets
First use case: register the plugin on a non-production panel, open a Filament resource that uses it, and verify the package’s primary UI surface renders and persists data. That gives you a quick signal on Filament 5 compatibility before doing a wider upgrade.
Where to look first:
README, UPGRADE.md, and CHANGELOG.PanelProvider for plugin registration and panel discovery.Pin the compatibility track. Use ^3.0 only on Filament 5 applications. Keep Filament 4 applications on the previous major and upgrade Filament first, then the package. Avoid floating constraints during the transition.
Register per panel, not globally by default. If the application has separate admin, staff, or tenant panels, register the plugin only on panels that need it. This limits blast radius and makes it easier to test Filament 5 behavior incrementally.
Keep package configuration publishable. Publish config into config/ and override per environment rather than editing vendor files. If the package exposes extension points such as custom views, themes, navigation items, or actions, prefer those over subclassing internals.
Integrate through Filament primitives. Use the package’s resources, pages, widgets, actions, or form/table components inside normal Filament resources and pages. Keep business logic in your own actions/services and let the package own presentation and panel integration.
Test the panel integration, not just the package. Add at least one Livewire/Filament test that boots the panel, loads a page using the package, and asserts the expected component or data is present. This catches registration and namespace issues that unit tests miss.
Handle deployment as a Filament release. In CI and deploy scripts, include asset rebuilds, config/route/view cache refreshes, and migrations where applicable. A package major that targets Filament 5 can fail at runtime if cached panel components or stale assets remain.
Use a short compatibility matrix. Track application Filament version, package major, PHP version, and asset build step. Filament majors often move together with Livewire/Tailwind expectations, so document the supported combination.
composer.json.composer why-not vendor/package 3.0.0 shows a Filament constraint conflict, resolve the Filament upgrade first rather than overriding constraints.php artisan config:clear
php artisan route:clear
php artisan view:clear
php artisan filament:clear-cached-components
php artisan filament:assets
config:cache was built before the new config was published.vendor:publish does not produce expected files. Do not copy v2 publish commands blindly.php artisan about and panel discovery. Confirm the application reports Filament 5.x, the package is installed at 3.0.x, and the panel provider is discovered. Then isolate by registering the plugin on a single minimal panel.How can I help you explore Laravel packages today?