Skip to content

Serializer improvements #146

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open

Serializer improvements #146

wants to merge 6 commits into from

Conversation

Arkemlar
Copy link

@Arkemlar Arkemlar commented Mar 5, 2025

During past half year I made a couple updates in my fork and I hope my efforts will benefit not only me.

First of all, I improved normalization for iterable objects (see #127).

This required me to dive deeply into SerializerTrait.php and that was not an easy task to understand whats going on. I found it might be refactored and optimized. Now call stack grows little slower when going deeper in object graph and debugging is easier. So as overall speed (if anyone cares).

Lastly, I added little feature - pass current (dunglas's one) serializer into context, so normalizers can use this. I needed that because I have multiple normalization contexts and handling with them that way is much more easier. You might ask why no use NormalizerAwareInterface in normalizers? Well, this leads to switching to main Serializer config once $this->normalizer->normalize() called inside custom normalizer. That main config differs from odm's one.

I will be happy if it helps. May be this PR needs to be separated to multiple ones, well, thats fine then, I'll do that.

Aweptimum and others added 6 commits October 27, 2023 12:32
Added a test class, Vector, implementing \Iterator and a corresponding test case in the SerializerTest that demonstrates iterable data doesn't play nice with the serializer.
Add de&normalizer for Traversable types
Add VectorNormalizer as an example of how to make custom normalizers for cases when other normalizers fails
…malizer service inside custom normalizers. This is needed when multiple serializer configs exists in the system.
@Arkemlar Arkemlar mentioned this pull request Mar 5, 2025
@Arkemlar
Copy link
Author

I will do code style changes if everything else is good and PR going to be merged.

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.

2 participants