swp/settings-bundle
SWP Settings Bundle provides flexible, database-backed application settings for Symfony. Define and organize settings, read and write values at runtime, and manage configuration through a clean service API, with caching to keep lookups fast.
Architecture fit
This is not a Laravel package; it is a Symfony bundle and a read-only subtree split of the Superdesk Web Publisher (SWP) monorepo. That distinction is decisive. Its public surface is built around Symfony's dependency-injection container, Doctrine entities/repositories, and SWP's admin UI forms. There is no extra.laravel block, no service providers, no facades, no publishable config or migrations. Laravel can host individual Symfony components, but it cannot consume a bundle as a package. Adoption would therefore be a port, not an integration — reimplementing the domain model, storage, and any UI on Eloquent/Blade or Livewire.
Integration feasibility
Low. The settings domain itself is not novel: typed, cached, per-tenant or per-scope settings with an admin surface. Everything this bundle provides is available in Laravel through spatie/laravel-settings, a conventional settings table with a repository/cache decorator, or plain config. The cost of porting plus owning the result almost certainly exceeds the cost of writing the small amount of code this problem actually requires.
Technical risk — High on every axis:
Key questions
Stack fit
Poor. Symfony bundle lifecycle (Extension, CompilerPass, bundle registration in AppKernel/bundles.php) has no Laravel equivalent. Bridging would mean selectively loading Symfony components into Laravel's container solely to satisfy this bundle's wiring — architectural debt with no offsetting benefit.
Migration path
Treat this as a replacement scoping exercise, not a migration. Recommended path: define a SettingsRepository interface in the application layer, back it with an Eloquent model plus a cache decorator, and expose scoped reads (global, tenant, user). That satisfies the domain in days rather than weeks and leaves no orphaned dependency.
Compatibility No compatibility guarantee exists. Expect PHP 7.1–7.3 syntax and Symfony 3/4 pins, Doctrine DBAL 2.x schema assumptions, and removed/renamed functions. Any adoption requires a full static-analysis pass plus a dependency audit before the first commit.
Sequencing
Maintenance Adoption transfers full ownership to us with no upstream. Every PHP or Laravel major upgrade becomes a manual audit of vendored Symfony-era code. This is a permanent, unshared tax on a one-star package.
Support None. No maintainer response path on this repository, no security advisory channel, no release cadence. A dormant upstream means undisclosed vulnerabilities stay unpatched indefinitely.
Scaling Settings reads are typically cached and low-throughput, so raw scaling is not the concern. The real concern is cache coherence: a Doctrine-backed store with per-node caching requires explicit invalidation design across instances, and a settings write fan-out (e.g., tenant-wide updates) needs a deliberate pub/sub or TTL strategy. That work is ours regardless of package choice.
Failure modes
Ramp-up High friction, low payoff. No documentation in this repository; developers must reverse-engineer intent from the SWP monorepo. Onboarding cost is paid by every engineer who touches settings, forever.
Recommendation: Do not adopt. The package's opportunity score (18.26) reflects a real, recurring requirement — application settings management — but this artifact is the wrong vehicle for it. Capture the requirement, close the dependency, and implement it natively.
How can I help you explore Laravel packages today?