Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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
Arkemlar wants to merge 6 commits into dunglas:main
base: main
Choose a base branch
Loading
from Arkemlar:main
Open

Serializer improvements #146

Arkemlar wants to merge 6 commits into dunglas:main from Arkemlar:main

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.

hanikesn reacted with heart emoji
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.
Copy link
Author

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

Copy link

any updates on this PR? this improves speed for us significantly

Copy link
Author

Arkemlar commented Oct 25, 2025
edited
Loading

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

Reviewers

No reviews

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

AltStyle によって変換されたページ (->オリジナル) /