0.11.0
🔻 Breaking changes ahead:
- Dropped support for PHP < 8.5
JSONPathTokennow uses aTokenTypeenum and the constructor signature changed accordingly.JSONPathoptions flag is now anintbitmask (wasbool), requiring callers to pass integer flags.SliceFilterreturns an empty result for non-positive step values (previously iterated indefinitely).QueryResultFilternow throws aJSONPathExceptionfor unsupported operators instead of silently proceeding.- Access helper behavior is stricter:
arrayValuesthrows on invalid types; ArrayAccess lookups checkoffsetExistsbefore reading; traversables and objects are handled distinctly. - Adopted PHP 8.5 features:
TokenTypeenum, readonly value object for tokens, typed flags/options, and#[\Override]usage. - CI now runs on PHP 8.5 with required extensions; code style workflow updated accordingly.
- Added coverage for AccessHelper edge cases (magic getters, ArrayAccess, traversables, negative indexes), QueryResultFilter arithmetic branches, and SliceFilter negative/null bounds.
- Fixed empty-expression handling in lexer and improved safety in AccessHelper traversable lookups.
- Added PHPStan static analysis to the toolchain and addressed its findings.
Full Changelog: 0.10.0...0.11.0