-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
[RFC] add HydrationFactory
as extension point for tracking hydrations
#9545
base: 3.4.x
Are you sure you want to change the base?
Conversation
ceb80da
to
b4e3f3a
Compare
I am torn, because it will encourage people to overwrite the existing hydrators, which are a bit too complex. Besides tracking the time there are not really many other use cases to use this extension point. |
Any other ideas how to achieve? I really think this is an important metric to make available. Maybe a |
I would be fine with this. This solves one of the inconsistencies between ODM and ORM, as ODM has this option. And I'm not a fan of not having features just because you can abuse them. I think ORM learned this lesson as well, since multiple important features have been deprecated years ago, only to get comeback recently and de-deprecated. |
b4e3f3a
to
b329889
Compare
b329889
to
f438654
Compare
Rebased to 3.4 with the hope of continuing this discussion 😄 🙏🏻 |
There hasn't been any activity on this pull request in the past 90 days, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 7 days. |
This seems pretty simple and straightforward. Anything against merging it (after rebase and changing target branch ofc) @greg0ire ? |
I think we should take @beberlei 's concern into account. A |
I don't see how adding some instrumentation hydrator would work, since this hydrator needs to wrap all the other hydrators and needs to be flexible so that bundle can execute custom logic before/after hydration. It's not even clear how would user collect the hydration result if it's in some object they don't instantiate and don't normally have access to. |
I did not have a clear idea here and honestly, I feel like this would add overhead we don't want. |
This is a proposed extension point to help solve doctrine/DoctrineBundle#109. I'm thinking a
HydratorInterface
thatAbstractHydrator
implements should be added but wanted to get some feedback/input before going further.The doctrine bundle could use this to add hydration times to the timeline:
The doctrine bundle could add something similar to https://github.com/debesha/DoctrineProfileExtraBundle#screenshots to the profiler panel.
You can see an example of how this could be used in DoctrineBundle here: https://github.com/kbond/symfony-reproducer/tree/hydration-profiler-poc (specifically kbond/symfony-reproducer@9a4e91b).
I don't think this causes any performance problems for hydration (when using the
DefaultHydratorFactory
).