solution-forest/inspirecms-core
InspireCMS Core provides the foundational Laravel components for building and extending InspireCMS, including content models, routing, admin scaffolding, and shared services. It offers a modular base for custom CMS features and workflows.
InspireCMS v5.0.0 is a major release whose headline change is dependency alignment rather than new features: PHP >= 8.2, Laravel ^11.0 | ^12.0 | ^13.0, and Filament ^5.0 in the companion support package. Treat the upgrade as a dependency exercise first and a code exercise second.
Minimal adoption path:
composer require solution-forest/inspirecms-core:^5.0
The core package links to the matching support package via self.version, so the two are intended to move in lockstep — do not pin one to ^5.0 and leave the other floating on ^4.x.
php artisan optimize:clear
Where to look first. In order: the published config file (for content model, disk, and route settings), the package service provider (for what is auto-registered and what is deferred), the Filament panel provider in the support package (for how admin resources are mounted), and the model layer (for observers and booted behavior).
First use case. The lowest-risk smoke test is a read-only one: boot the app, confirm the admin panel loads under Filament 5, and confirm a content listing renders. Validate that basic read path before touching writes, publishing workflows, or media handling.
Pin the pair, not the package. Because core resolves the support package by self.version, treat inspirecms-core and its support package as a single unit in composer.json. Upgrading one without the other is the single most common way to get a class-not-found or a Filament resource that silently fails to register.
Stage the upgrade in a branch with a clean lockfile. Major version jumps in a package that touches the model layer are poor candidates for incremental composer update. Resolve from scratch, commit the lockfile, and diff the resolved versions to confirm both packages landed on 5.x.
Isolate observer and model-boot customization. Laravel 13 changes model booting behavior. Any place you have extended a CMS model with a booted()/boot() override, a custom observer, a global scope registered at boot, or a trait that hooks model events should be reviewed and tested explicitly. Move custom event wiring into a dedicated service provider or observer registration where possible, so it is not implicitly depending on boot ordering.
Keep your own code out of the package's internals. In a major release with a framework-compatibility focus, vendor internals are the least stable surface. Extend through published config, container bindings, and documented extension points (models, resources, service provider overrides) rather than subclassing deep internals.
Use the optimize:clear step in CI too. If you deploy via cached config and routes, add the cache clear to your deploy script rather than running it by hand once. A stale cache after a major upgrade behaves like a code bug and wastes debugging time.
Run Filament 5 migration work as its own change set. Filament major versions typically change resource/form/table APIs. Landing the Filament upgrade and the InspireCMS upgrade in one commit makes a failure ambiguous. Two commits, two green test runs.
4.0.10...5.0.0) rather than relying on the release summary; the summary is compatibility-focused and likely omits smaller signature and behavior changes.self.version means the support package version follows the core version exactly. A composer resolution that produces a mismatched pair is worth treating as a build failure, not a warning.php artisan optimize:clear resolves a large class of "class not found," "route not defined," and "config value unchanged" symptoms. Always run it before debugging further.How can I help you explore Laravel packages today?