Skip to content

FIX: updated json deserialization code - #2

Merged
Elijah Skeirik (payablijah) merged 7 commits into
mainfrom
elijah/doc-2350-fix-json-deserialize
Jul 20, 2026
Merged

FIX: updated json deserialization code#2
Elijah Skeirik (payablijah) merged 7 commits into
mainfrom
elijah/doc-2350-fix-json-deserialize

Conversation

@payablijah

Copy link
Copy Markdown
Contributor

No description provided.

…rialization

JsonSerializableType::jsonSerialize() returns array|stdClass, but PushPayLinkRequest
passed the result directly to array_merge(), which only accepts arrays. This fixes
the composer analyze (PHPStan) CI failure by normalizing to arrays before merging
and tightening the unknown-branch typing in jsonSerialize()/jsonDeserialize().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…onSerialize

jsonSerialize() unconditionally re-passed already-serialized Union/ArrayType
values through serializeObject(), which requires a JsonSerializable instance.
An empty map or empty union member serializes to a plain stdClass, which isn't
JsonSerializable, so re-processing it threw "Class stdClass must implement
JsonSerializable." Skip the object-handling branch once a value has already
been serialized by the Union or ArrayType path.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
PushPayLinkRequest.php and NullPropertyTest.php were hand-patched to fix
PHPStan/PHPUnit failures; excluding them from Fern regeneration so the
fixes aren't clobbered on the next generation run.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@payablijah
Elijah Skeirik (payablijah) merged commit 7ce3f3d into main Jul 20, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant