Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Configuration Bundle Laravel Package

sherlockode/configuration-bundle

A Symfony bundle for database-backed application configuration. Define typed settings, manage them through an admin-friendly interface, and retrieve values easily in services, controllers, and templates, with Doctrine persistence and caching support.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit The package is a Symfony bundle, not a Laravel package, and that is the single most important fact for a TPM. It has no composer.json extra.laravel block, no service provider, no facade, no publishable config/migrations — its integration surface is Symfony's DI container, Doctrine ORM entities, and Symfony console/event hooks. There is no architectural slot for it to occupy in a conventional Laravel application.

What is transferable is the design pattern, and this is where a TPM should focus leverage: a clean split between a code-declared, typed configuration schema (definitions, defaults, validation) and a database-persisted value store, fronted by a single injectable manager. That separation — schema in code, values in the DB — is the actual product decision the package encodes, and it is framework-agnostic. The package itself should be evaluated as a reference implementation and a pattern source, not as a dependency to install.

Integration feasibility Three credible paths, in ascending order of cost:

  1. Pattern reimplementation in Laravel (recommended). Model configuration definitions as a PHP class/registry with typed accessors, persist values via Eloquent, back it with Laravel's cache and a settings service. Cost is days, not weeks; no new runtime dependency; idiomatic with config() semantics and Laravel's container. Note that spatie/laravel-settings already occupies this space and should be benchmarked first — buying beats reimplementing if it fits.
  2. Extract the bundle's standalone pieces. The typed-definition and manager classes are largely plain PHP; only the bundle wiring and Doctrine mapping are Symfony-specific. Pulling the concept, or even the entity/manager classes, into a Laravel app with Doctrine alongside Eloquent is technically possible but imposes a two-ORM tax on a Laravel codebase for no feature gain. Reject unless the app already runs Doctrine.
  3. Run it in a Symfony sidecar service. Viable only if the organisation already has Symfony services and wants a shared configuration plane exposed over HTTP/queue. For a pure Laravel product this multiplies operational surface for a 31-star pre-1.0 bundle. Not justified.

Technical risk

  • Framework mismatch is the dominant risk and dwarfs every other factor. The release notes (v0.8.0) harden Composer constraints for Symfony 6.4/7.x and PHP 8.2–8.4 — confirming the maintainer's roadmap is Symfony-native, not framework-neutral.
  • Maturity and adoption. 31 stars, a single maintainer, and a first external contribution landing at 0.8.0. Low community signal; the package score (~15.9) reflects this. Fine as a pattern donor, thin as a production dependency.
  • Pre-1.0 semver. 0.7.1 → 0.8.0 is a minor bump in 0.x, where breaking changes are permitted. This release is a de facto compatibility break for Symfony 5.4 / PHP ≤8.1 consumers.
  • Exit cost is low if we borrow rather than depend — the strongest argument for path 1.
  • Secrets. A DB-backed config table is the wrong home for credentials; that needs an explicit allowlist of migratable domains.

Key questions

  1. Is the target application Laravel or Symfony? If Laravel, are we adopting a dependency or borrowing a pattern — and has spatie/laravel-settings been benchmarked first?
  2. Which concrete config domains would move into a dynamic store, and are any security-sensitive?
  3. Do we already operate Symfony services where this could be a shared configuration plane, or is that hypothetical?
  4. What is our appetite for owning the integration glue versus paying for a maintained Laravel-native alternative?
  5. What is the exit plan if the maintainer goes quiet — fork, vendor, or migrate to a Laravel-native implementation?

Integration Approach

Stack fit Conditional and narrow. It fits only a Symfony 6.4 LTS / 7.x application on PHP 8.2–8.4 with Doctrine ORM. For a Laravel 10/11 codebase on PHP 8.2+, it does not fit as an installed dependency — the fit is conceptual. Treat v0.8.0 as the viable floor for any Symfony use: it is the first release that pins the modern Symfony/PHP matrix explicitly.

Migration path No technical migration is implied by v0.8.0 — nothing is deprecated or renamed, so there is no forced work. If we proceed on the pattern path, the migration is organisational: existing static config/*.php values and env vars move into the dynamic store domain by domain, with read-through fallback to current sources during transition. Start with one bounded, non-sensitive domain (feature flags, notification copy, contact details) — never secrets, and never values read on a hot request path without caching.

Compatibility The bundle's constraints (PHP 8.2–8.4, Symfony 6.4/7.x) are irrelevant to a Laravel install but binding if we pilot in a Symfony skeleton. Applications on Symfony 5.4 or PHP ≤8.1 are frozen on 0.7.x — flag any such consumer now. For a Laravel reimplementation, the compatibility question inverts: pin to the Laravel/PHP versions we already support and design the persisted value column types to survive future framework upgrades.

Sequencing

  1. Resolve the framework question — this gates all downstream work.
  2. Benchmark spatie/laravel-settings (or equivalent) against this pattern before committing to build.
  3. If Symfony: install in a throwaway 6.4/7.x skeleton on our PHP version and capture the resolved dependency tree.
  4. If Laravel: define the abstraction boundary first — a ConfigurationRepository interface plus a typed definition registry — so the backing store can be swapped without touching call sites.
  5. Pilot one non-sensitive domain behind a cache-aside layer.
  6. Expand scope only after the pilot and a documented exit plan.

Operational Impact

Maintenance Low churn in the upstream package (v0.8.0 changed constraints only — no runtime code, no regression surface this cycle). But as a Laravel team, we would own 100% of the glue. Budget a dependency-review pass only if we actually depend on it; if we borrow the pattern, maintenance collapses to normal application code ownership, which is the cheaper long-run position.

Support Single maintainer, no commercial backing, no LTS commitment, MIT licensed (fork-friendly). We should not place a tier-1 production dependency on this without a named internal owner and a documented fork/vendor contingency. For a Laravel shop, the support question is mostly moot — the equivalent risk sits with whichever Laravel-native package we choose instead.

Scaling Configuration reads sit on the request path. Without an application-level cache in front, every config access becomes a DB round-trip — this is the dominant scaling concern and must be designed explicitly: cache-aside with invalidation on admin write, and a request-scoped memoised manager so repeated lookups within one request do not hit the cache or DB twice. Config write volume is negligible; read volume is not.

Failure modes

  • Database unavailable or slow → config resolution fails. The app must degrade to cached or last-known-good values, never hard-fail on boot.
  • Admin edits corrupt or invalidate config at runtime → requires validation before persist plus an audit trail with rollback.
  • Composer constraint drift at the next upstream release → unexpected resolution failures on deploy; mitigate with a pinned lockfile and a CI resolution check.
  • Maintainer abandonment → frozen on an unsupported Symfony branch; mitigate via fork readiness or, better, by not depending on it.
  • Secrets landing in the config table → exposure through admin UI and DB backups; mitigate with an explicit domain allowlist.
  • Dual-ORM creep (if the extract-pieces path is taken) → Eloquent and Doctrine coexisting raises debugging and onboarding cost; treat as a hard stop.

Ramp-up For a Symfony team: roughly half a day to a working install and pilot domain — modest. For a Laravel team: the ramp-up is not in the package but in the decision, and should be capped as a short spike to evaluate the pattern and the Laravel-native alternatives. Recommend a spike, not a commitment, until the framework-fit question is answered.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox