IBX-10116 ibexa_render() does not use decorated fragment renders #579
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.
Description:
Decorations of the fragment renders are not available for the
ibexa_render()
renderers (Ibexa\Core\MVC\Symfony\Templating\RenderLocationStrategy). This is because all renders are taggedkernel.fragment_renderer
, both the original services, and the decorating ones! As the renders are stored in a hash array, the original services overwrites the decorating ones.The result is that for instance the siteaccess is not serialized in esi calls when using
ibexa_render()
( but it is if usingrender_esi(Controller())
This PR uses same approach as https://github.com/symfony/http-kernel/blob/v5.4.48/DependencyInjection/LazyLoadingFragmentHandler.php#L44-L47
For QA:
See ticket for How-to-reproduce instructions
Documentation: