Repository navigation
v0.2.10 — Early configuration sources and named overrides
Configuration sources can now provide persisted overrides before the first plugin bootstrap reads configuration. A plugin or host may register source classes through app/config_sources.php or src/config_sources.php; plugin sources follow boot order and host sources load last.
Config adds named literal override layers and provenance APIs: overlay(), overrides(), base(), raw() and source(). Overrides preserve false, zero and null, replace complete array values, and can be reset to resolved server defaults. This supports administration-managed configuration without forcing startup services to use stale server values.
Existing configuration files and readers continue to work. Sources must have no-argument constructors and must not resolve configuration-dependent services while loading. Updating a layer does not reconfigure services that have already been instantiated.
Validation: 177 tests with 377 assertions; a real HTTP host verifies source loading before plugin boot, plugin/host precedence, environment defaults, literal values, reset behavior, redirects and response headers. Composer validation and dependency audit pass; CI passes on the exact release commit.