-
-
Notifications
You must be signed in to change notification settings - Fork 294
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
Bugfix: ProxyGenerator incompatible with public typed properties and lazy loading #882
Conversation
… be lazy loaded, and to get default values these properties (typed not nullable properties in php 7.4 have no default value)
@Ocramius Would you mind to take a look into this? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can’t merge this: the new interface methods constitute a BC break. We need to be able to fix this in a minor release.
@alcaeus thank you for comment. |
Adding new methods to an interface is always a BC break, as existing implementations will no longer satisfy the interface and thus cause a fatal error. |
@alcaeus Requesting your review. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Added duplicate of ProxyLogicTest that works with class with typed properties. If I have to leave only some specific tests, tell me which ones. |
…tock inventory implementation.
…tock inventory implementation.
@alcaeus what's news on this PR? Maybe I should change something in duplicated tests? |
…tock inventory implementation.
…tock inventory implementation.
…tock inventory implementation.
…tock inventory implementation.
…tock inventory implementation.
…tock inventory implementation.
My apologies for spending time with my family over Christmas break. I'm currently working through my notification backlog and have to prioritise things. As this is all done in my free (meaning unpaid) time, sometimes patience is all that's needed. |
Thank you. Just making sure you did not die during x-mass 😆. Anyways, I understand that you use your free time for this. Just fyi, my current project work done on my free time and not getting paid for it either. This issue is currently major blocker for anybody using PHP 7.4 in any project and causing everybody to make stypid bypasses or drop version to 7.3. That is the reason why I keep pining. If I can help you in anything, let me know. As I'm private invidual doing this, I'm unfortunately not able sponsor to get this issue resolved any faster. |
…ray()` lookups `in_array()` is expensive, and looking for it on every property access will cripple performance even without I/O
…lts exposed via public API
…ctored `unset()` codegen
…RSION_ID` comparison This allows us to use more powerful reflectors (if available).
… to rely on newer PHP releases
…rty#getType()` (always defined on PHP 7.4)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM! Applying some local diffs (nitpicks, mostly) and merging manually, thanks @a-menshchikov!
Thanks! |
Added separate methods to get the list of public properties that will be lazy loaded, and to get default values these properties. Typed not nullable properties in php 7.4 have no default value.
Issue: #881