- (feature) Add
ContextBagas base helper for using normalizer context. - (improvement) Reduce normalization overhead by tracking the debug stack internally across recursion instead of mutating it in context on each nested value.
- (improvement) Cache Doctrine-normalized class names in
SimpleNormalizerto avoid repeated metadata lookups for the same object type. - (improvement) Add test coverage to ensure class-name normalization is cached across repeated normalization calls.
- (improvement) Optimize
ValidJsonVerifierby reusing a mutable path stack during traversal instead of allocating a new path array for each nested element. - (improvement) Add dedicated verifier tests for deep-path reporting and first-invalid-element detection.
- (improvement) Optimize empty
stdClassdetection by using an(array)cast check instead ofget_object_vars(). - (improvement) Add a default max-depth guard (128) for normalization and JSON verification to mitigate deep-nesting DoS risk.
- (improvement) Add stack trace to all relevant exceptions as getter.
- (improvement) Add stack trace to NormalizationFailedExceptions thrown in custom object normalizers.
- (improvement) Support Symfony v8+
- (feature) Add normalization stack for better error reporting.
- (improvement) Avoid using deprecated Doctrine internals when resolving class names.
- (feature) Add
ValidJsonVerifier, that checks, that every normalizer correctly generated JSON-compatible values.
- (improvement) Add convenience default parameters.
- (improvement) Require PHP 8.4+
- (improvement) Bump dependencies.
- (improvement) Allow normalizing empty
stdClass.
- (improvement) Make
SimpleNormalizernon-readonly, to allow it to be mocked.
- (feature) Make
SimpleNormalizerextendable (for testing). - (improvement) Make
SimpleNormalizerreadonly.
- (improvement) Make
SimpleNormalizer::normalizeArraypublic.
- (improvement) Allow Symfony v7.
- (feature) Add
SimpleNormalizer::normalizeMap(). - (feature) Add helper VO
ValueWithContext. - (improvement) Require PHP 8.3.
- (bug) Move test trait to published namespace.
- (feature) Add public helper trait
SimpleNormalizerTestTrait.
- (improvement) Add generic
NormalizationFailedExceptionfor usage inside your normalizers.
Initial Release \o/