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

Config Laravel Package

orchestra/config

Orchestra Config provides a Laravel-friendly configuration component for Orchestra Platform, helping packages and extensions register, merge, and manage config files through a consistent API. It integrates cleanly with Laravel’s configuration system.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Modular vs. monolithic architecture. If the roadmap anticipates splitting the product into Laravel packages or modules (billing, notifications, entitlements, tenant settings), this package supplies a documented convention for layering package-level config onto application config. The decision on the table: adopt one config-layering convention now, or let each module invent its own discovery and merge logic and pay for that divergence in onboarding time and incident response later.
  • Encoding the override policy as a product decision. The merge-with-defaults behavior and environment-aware handling are the machinery behind a precedence ladder: library default → package default → environment → tenant/account → runtime override. Determining what a customer, solutions engineer, or support agent can change without a deploy is a product policy, not an implementation detail. This is where that policy gets expressed in code.
  • White-label, regional, and plan-tier variation. Config-driven behavior lets a single build serve multiple brands, regions, or pricing tiers without forked codebases or conditional branches. That directly supports packaging and pricing decisions where entitlement differences should be configuration changes rather than releases.
  • Feature flags and progressive rollout. A config layer with override support is a natural home for kill switches and per-account enablement. The PM decision to make explicitly: flags in config files, in a dedicated flag service, or in the database. Each carries a different cost of delay and a different blast radius when it goes wrong.
  • Build vs. buy for internal config glue. Teams routinely hand-roll config merging, caching, and override logic. This package is the buy option — but with zero dependents and a latest major that exists solely to track Laravel 8, the honest comparison is "a small dependency we must own" vs. "a small amount of code we already own." Frame it that way rather than as a clear win.
  • Upgrade cost as a recurring budget line. The only documented change in v6.0.0 is Laravel 8 support, which tells us the package's major version tracks the Laravel major. That is a schedulable, recurring platform cost. Fund framework upgrades as a program, with each dependency's major bump as a line item, instead of absorbing them as engineering overrun.
  • Third-party and extensibility contract. If the roadmap includes add-ons or a plugin SDK, the config contract we publish to external developers is expensive to revise later. Choose it deliberately rather than inheriting it by accident.

When to Consider This Package

Consider it when:

  • The codebase is — or is becoming — modular, several internal modules need defaults plus application-level overrides, and you want one documented convention instead of N bespoke ones.
  • The roadmap requires per-tenant, per-environment, or per-brand behavioral differences that should be configuration rather than code branches, and you want a precedence order that is written down and testable.
  • You are on, or actively moving to, the Laravel line this package supports, and someone will explicitly own the dependency: reading the source, diffing releases, and watching commit cadence.
  • You are replacing in-house config-merge code that has caused production incidents through silent default drift, and a conventional, framework-aligned shape is worth more than bespoke control.
  • You are standardizing a platform layer across several applications and want shared conventions for package config discovery and publishing.

Look elsewhere when:

  • The application is pinned to a Laravel major the package does not support. This is a hard gate: Composer will not resolve, and no application-side work fixes it. Stay on the last compatible release or do not adopt at all.
  • You need an SLA, a security disclosure process, or a published deprecation/LTS policy. Zero dependents plus single-line release notes is not a support model — assume community-only, best-effort, "we read the source."
  • The configuration surface is small. Laravel's native config/ directory and environment variables are sufficient; a layering package adds a concept to learn and a precedence order to get wrong.
  • You need high-scale, database-backed dynamic settings with an admin UI and audit trail. That is a settings-service problem — persistence, caching, permissions, history — not a file-merge problem, and should be decided separately.
  • You cannot verify what changed between majors. With no disclosed CI matrix and no visible upgrade guide, a major bump is breaking until diffed. Do not place it under anything revenue-critical without a spike and a rollback pin.
  • The product is single-tenant and single-environment. The flexibility is unused surface area, and unused abstraction still has to be maintained.

How to Pitch It (Stakeholders)

For executives: this is a plumbing decision, not a feature. The package gives us one documented way to layer default, environment, and tenant-level settings — which is what lets us sell configurable tiers and regional variants without forking the product per customer or shipping bespoke behavior changes. The honest counterweight: it is a small, low-adoption open-source component whose latest major exists only to add Laravel 8 support, on a framework line now past end-of-life. Adopting it means we own a dependency the market has not validated. Recommend a bounded evaluation — roughly one week, one module — before it becomes load-bearing, and treat future framework upgrades as a scheduled program line rather than a surprise engineering cost.

For engineering: treat the package as a convention, not a black box. Confirm the Laravel constraint and supported PHP range before anything else; that is the decision gate, and it collapses the option set in a day. Diff the previous major against this one for renamed config keys, service-provider namespaces, and facade aliases rather than trusting a one-line changelog, and diff published config against the application's copy instead of overwriting it — a renamed key with an unchanged default fails silently, which is the dangerous failure mode here. If we need a framework version the package does not ship, the realistic options are pinning the last compatible release or forking and carrying the constraint ourselves; name that cost before committing, not after. Assign a named owner at adoption, because an unowned dependency with stale framework support is exactly how upgrade backlogs and platform lockouts accumulate.

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.
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
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console