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

Cascading Config Laravel Package

phanan/cascading-config

Laravel package that brings cascading configuration to your apps: split settings into layered files where environment-specific values override the defaults, keeping large configs organized and avoiding duplication across environments.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Configuration strategy for multi-environment deployments. The package restores Laravel 4's config/{environment}/ cascade, so a team can decide between environment-variable-driven config (Laravel 5+ default, .env) and file-based per-environment overrides (staging, QA, regional, tenant). That is a real architectural decision with downstream consequences for secret handling, config caching, and deploy reproducibility.
  • Build vs. buy vs. borrow. With 55 stars, zero dependents, and an archived repo, this is a "borrow the pattern, not the dependency" case. The PM decision is whether to reimplement a ~100-line config cascade in-house, adopt this package for a legacy Laravel 5 app, or standardize on env vars and drop the cascade entirely.
  • Migration/roadmap scoping for legacy estates. If you maintain Laravel 4 → 5 migrations, this package is a stopgap that avoids rewriting configuration layouts during a migration. That informs sequencing: ship the framework upgrade first, defer config refactoring to a later milestone.
  • Use cases worth validating with users: per-region config (currency, locale, tax), per-tenant overrides in a multi-tenant app, QA/staging parity with production minus secrets, and feature-flag-lite setups where a config folder acts as a named environment profile.
  • Deployment topology decisions. Cascading config folders encourage "config as artifact" (versioned, diffable, reviewable) instead of "config as environment" (ops-managed, invisible to code review). That trade-off shapes whether your release process needs config review gates or secrets injection at deploy time.
  • Risk register input. An archived, unmaintained package pinned to an EOL framework is a decision to accept technical debt with a known expiry. Documenting that explicitly is itself a PM deliverable.

When to Consider This Package

Consider it only when all of the following hold:

  • You are on Laravel 5.x and cannot upgrade in the current planning horizon.
  • Your team already thinks in Laravel 4 cascading config terms, or you have inherited an app whose config layout assumes per-environment folders.
  • Your overrides are non-secret (feature toggles, endpoints, locale, numeric thresholds). Secrets should stay in env vars or a secrets manager regardless.
  • The surface area is small — a couple of environments, a handful of overridden keys — so a hand-rolled array_replace_recursive in a service provider is also viable and arguably preferable.
  • You have accepted vendoring or forking the code, since the repo is archived and will receive no fixes.

Look elsewhere when:

  • You are on Laravel 6+ (or 8/9/10/11). Later versions changed config bootstrapping and caching enough that this package's assumptions no longer hold; the cost of making it work exceeds the cost of the alternative.
  • You need secrets management, rotation, or audit — use env vars, Vault, AWS Secrets Manager, or a dedicated settings package.
  • You want runtime, user-editable settings (admin UI, database-backed) — that is a different problem; look at spatie/laravel-settings or a custom settings table.
  • Config caching is central to your performance story. Cascade semantics interacting with config:cache are a common source of "works locally, wrong in prod" incidents, and an unmaintained package will not help you debug them.
  • Your org requires supported dependencies with a CVE response path. Archived + EOL framework fails that gate outright.
  • You are greenfield. There is no reason to reintroduce a pattern the framework deliberately replaced.

How to Pitch It (Stakeholders)

To executives (one paragraph): This is a small community package that restores an older Laravel configuration convention — per-environment config folders that layer over a base config. It is not a strategic dependency: the repository is archived, it targets an end-of-life framework version, and it has essentially no adoption. The value on the table is a pattern, not a product. Recommendation: do not add it as a dependency on any current or new workstream; treat it as a reference implementation if a legacy Laravel 5 app in our portfolio needs a short-term config bridge during migration. Cost is negligible; the risk is silent breakage in an unsupported component, which we mitigate by vendoring and time-boxing.

To engineering (bullets):

  • What it does: reintroduces config/{env}/ cascading overrides on top of Laravel 5's flat config, so environment-specific values live in versioned files instead of scattered env vars.
  • Why we are cautious: archived repo, Laravel 5 only, zero dependents, no maintenance or security response. It will not track framework changes.
  • If we use it: pin and vendor the source, add a test that asserts the resolved config for every environment, and set a removal date tied to the framework upgrade.
  • Preferred alternative: keep secrets in env vars, put non-secret per-environment differences in a single well-named config file keyed by app()->environment(), and lean on config:cache in production. This gets 90% of the cascade's benefit with none of the dependency risk.
  • Decision needed: confirm the removal milestone for any legacy app currently relying on this pattern, and confirm we are not budgeting engineering time to modernize the package itself.
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.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core