Actions
Feature #81389
closedEpic #55070: Workpackages
Epic #55065: WP: Overall System Performance (Backend and Frontend)
Epic #55656: Optimize overall Extbase performance
Task #57594: Optimize ReflectionService Cache handling
Injected ReflectionService without call to initialize/shutdown
Start date:
2017-05-31
Due date:
% Done:
0%
Estimated time:
PHP Version:
Tags:
Complexity:
medium
Sprint Focus:
Description
There are different classes which get the ReflectionService via inject but do not call initialize and shutdown, which results in cache savings for other Extbase Extensions afterwards.
Following scenario:
I've in frontend a fluid page which uses ViewHelpers and an extbase plugin. On my example page is dynamic content and so it isn't cached.
- The AbstractViewHelper gets the ReflectionService injected, no initialize and shutdown is called.
- AbstractViewHelper->registerRenderMethodArguments() calls getMethodParameters
- As no data is in cache, it is generated and in ReflectionService dataCacheNeedsUpdate is set to TRUE;
- The Extbase Extension is called, ReflectionService is initialized but dataCacheNeedsUpdate stays TRUE
- On calling ReflectionService Shutdown the loaded (and not changed) cache is written to the cache ... which isn't needed.
- Later AbstractViewHelper->registerRenderMethodArguments() calls again getMethodParameters which again do not found some parts, as the initialize of the ExtbaseExtension overwrote the data.
- Again ReflectionService dataCacheNeedsUpdate is set to TRUE;
- Now Second part of my Extension is started with initialize/shutdown
- And again a normally clean cache is written again as dataCacheNeedsUpdate is TRUE
Setting dataCacheNeedsUpdate to false in ReflectionService->initialize() helps here (the multiple cache loading should be handled in parent task)
Actions