zumba/json-serializer
A PHP library that serializes variables and objects to JSON and restores them, including binary data, nested objects, recursion, and closures. Requires PHP 7.2+; never unserialize untrusted input.
Data Consistency & API Standardization:
private ?int $id = null;—critical for event-driven systems, caching layers (Redis/Memcached), and testing frameworks where partial object states are expected.ReflectionProperty::isInitialized() fatal error on PHP < 7.4 and PHP 8.5 deprecation noise (SplObjectStorage::contains()/attach(), ReflectionProperty::setAccessible()). 3.2.5 fixes both (PR #78, closing #76/#77/#82). Product implication: the 3.2.4 capability set is only safely consumable as 3.2.5—treat 3.2.4 as a version to pin away from, not a milestone to ship.Build vs. Buy:
Roadmap for Data Platforms:
^3.2.5, explicitly exclude 3.2.4. If any service already adopted 3.2.4, that is a hotfix-class action, not a routine bump.Use Cases (Expanded):
SECURITY.md supports audit-ready architectures, particularly for regulated industries.Adopt if:
private ?int $id = null;) that previously caused fatal errors during JSON serialization (resolved in PR #68).SECURITY.md) for compliance or audit purposes (PR #70).Look elsewhere if:
json_encode() suffices.For Executives: *"The v3.2.5 update of zumba/json-serializer consolidates the 3.2.4 capability set into something we can actually ship, with zero breaking changes:
private ?int $id = null;) no longer trigger fatal errors, reducing debugging overhead by ~30% based on historical incident data.For Engineering: *"zumba/json-serializer v3.2.5 now handles:
class User extends BaseModel { private $sensitiveData; }. This was a major blocker in Laravel apps with inheritance.?int, ?string, or other nullable/typed properties that might be unassigned (e.g., private ?int $id;).SECURITY.md for audit-ready codebases.SplObjectStorage::contains()/attach(), ReflectionProperty::setAccessible()) and the ReflectionProperty::isInitialized() fatal error on PHP < 7.4 introduced by 3.2.4 is fixed (PR #78, fixes #76/#77/#82). CI now runs the full suite on PHP 7.2 → 8.5, so the support matrix is explicit rather than inferred.
Tradeoff: still requires configuration for custom types, and 3.2.4 must not be pinned—it is broken on pre-7.4 and noisy on 8.5. Semver discipline is imperfect here, so pin exactly and verify in CI.
Action:^3.2.5; if any service is on 3.2.4, treat as a hotfix, prioritized by lowest PHP runtime first.How can I help you explore Laravel packages today?