Skip to content

v0.2.10 — Early configuration sources and named overrides

Choose a tag to compare

@FloKnapp FloKnapp released this 10 Oct 22:55
· 12 commits to main since this release
e8f2db3

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.