-
-
Notifications
You must be signed in to change notification settings - Fork 69
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
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.
I will do code style changes if everything else is good and PR going to be merged.
Julianthanner
commented
Oct 24, 2025
any updates on this PR? this improves speed for us significantly
Well, since there are someones who account it as useful change, I will update code to pass style ci checks and ask dunglas to merge it.
Will do that soon, preferably next week if wont get too busy at work.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.