Repository navigation
v0.6.0
Findings of the consumer pilot (ecosystem-sandbox, cska-one) before 1.0:
- Behavior change:
ParseError::toPath()quotes keys that are not plain
names ([A-Za-z_][A-Za-z0-9_]*):$['a.b'],$['user@example.com'],
$['0']—$.a.bwas ambiguous between the keya.band the keysa,
b. Segments andtoJsonPointer()are unchanged. - Behavior change: an unknown key is reported as
Unknown propertyat
its path; the message no longer repeats the key. Input keys appear in
paths only, never in messages (stability contract wording updated). ParseResult::$valueis typedTValue|null, so the shape the Psalm
plugin infers is visible on the result, not only throughorThrow().toWire()ofinto()and object schemas is typedarray<string, mixed>
for an object / array input: the "event is one schema" recipe needs no
@var.- README: the plugin does not infer constraints (
int<0, max>,
non-empty-string); annotate a schema returned from a helper method;
the recipe pays off for multi-field payloads;parseJson()attaches no
JsonException.