Skip to content

[TASK] Share resolver delegates in cached templates (#1319)#1327

Merged
s2b merged 1 commit into4.6from
backport46
Feb 20, 2026
Merged

[TASK] Share resolver delegates in cached templates (#1319)#1327
s2b merged 1 commit into4.6from
backport46

Conversation

@s2b
Copy link
Copy Markdown
Contributor

@s2b s2b commented Feb 20, 2026

Due to an oversight, each component call from a template created its
own instance of the responsible ViewHelperResolverDelegate. This is
not necessary, since resolver delegates are meant to be sharable.

This patch introduces the new getResolverDelegate() method, which
centralizes the already existing runtime cache for resolver delegate
objects. All existing usages of
createResolverDelegateInstanceFromClassName() are migrated to the
new method.

Note that the performance impact wasn't relevant in TYPO3, since the
underlying DI implementation already shared the service objects.

Due to an oversight, each component call from a template created its
own instance of the responsible ViewHelperResolverDelegate. This is
not necessary, since resolver delegates are meant to be sharable.

This patch introduces the new `getResolverDelegate()` method, which
centralizes the already existing runtime cache for resolver delegate
objects. All existing usages of
`createResolverDelegateInstanceFromClassName()` are migrated to the
new method.

Note that the performance impact wasn't relevant in TYPO3, since the
underlying DI implementation already shared the service objects.
@s2b s2b merged commit ac7c0ac into 4.6 Feb 20, 2026
10 checks passed
@s2b s2b deleted the backport46 branch February 20, 2026 13:38
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

Successfully merging this pull request may close these issues.

1 participant