Skip to content
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

Unintercepted function call to load entity data when enable_lazy_ghost_objects is enabled #11524

Open
jbcr opened this issue Jun 25, 2024 · 0 comments

Comments

@jbcr
Copy link

jbcr commented Jun 25, 2024

Bug Report

Q A
BC Break yes
Version 2.15.5

Summary

When the option enable_lazy_ghost_objects is enabled, calling a function not getter/setter on an entity can break the code.

Current behavior

An entity used from relation (with proxy) can execute function code without entity data. You need to explicitly call a property to load the entity data.

How to reproduce

I'm upgrading a project from Sylius 1.12 to 1.13.2.

During the upgrade, I have set the enable_lazy_ghost_objects to true to remove deprecation.

But, if enable_lazy_ghost_objects is true I have an error when I try to access Sylius Ressource translation from a relation.

In Sylius, you have an entity (resource) named Product that can be translated (ProductTranslation).
On the Product, I have a method called getTanslation(?string $local = null) to get the current translation or requested translation by $local parameter. This method throws an exception if the current local and the $local parameter are null.

I added a new entity (resource) named Tag with a one-to-many relation to Product.

When I execute $tag->getFirstProduct()->getTranslation()->getName(); the exception is thrown because the product is not loaded.

Expected behavior

The data of Product entity must be loaded when getTranslation() is called.

Source issue: doctrine/DoctrineBundle#1809

Sylius Issue: Sylius/SyliusResourceBundle#901

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

No branches or pull requests

1 participant