Repository navigation
Breaking changes
Input that 2.x accepted can now fail or parse differently:
- Typed loader (
Config::load)- A non-public schema property throws
Load, where it used to throw a rawError. - An absent optional key keeps the property's declared default. With no default, a nullable property becomes
null. OtherwiseLoadis thrown, where 2.x left the property uninitialised.
- A non-public schema property throws
Parser\PHPrejects contents that don't start with<?phpand throwsParse. Before, any text ahead of the tag was printed.Parser\Dotenv- An unquoted
#starts a comment only at the start of a value or after whitespace, sopa#ssandhttps://x.com/a#bstay whole. - A leading
exportis dropped from the key.
- An unquoted
The registry (Config::setParam() / getParam(), restored in 2.1.0) is unchanged.
Commits
- refactor(config): parse without regular expressions
- test(config): keep the loader fixtures in the shape under test
- docs(config): make the README examples run and state the schema rules
- fix(config): read unquoted # and export lines as dotenv does
- fix(config): refuse PHP config without a leading open tag
- fix(config): keep the typed loader inside its Load contract