Task #56538
closedEpic #55070: Workpackages
Epic #55065: WP: Overall System Performance (Backend and Frontend)
Bug #52949: Speed decrease since 4.5
Bug #56307: Findings from Bootstrap/PackageManager/ClassLoader analyses
Cache the $GLOBALS['TYPO3_LOADED_EXT'] as an array
100%
Description
Several core components still access $GLOBALS['TYPO3_LOADED_EXT'] directly. Basically it's used to loop through the activated extensions and also to check if some extension is installed.
Since the Package Management, this array is being simulated by an object (LoadedExtensionsArray). Plan was to be able to add deprecation messages for accessing this array in future.
When accessing a FE with one USER_INT, accessing this object takes about 10% of the time.
It should be considered if we cannot generate the original array on first request, cache it, and then make the GLOBAL array available again to whoever uses it. It's just a list of extensions. The gain of the future possibility of throwing a deprecation message opposed to simply having this array as an array and be fast is probably not worth it.
Updated by Thomas Maroschik almost 11 years ago
- Status changed from New to Accepted
- Assignee set to Thomas Maroschik
Updated by Michiel Roos almost 11 years ago
It would be great if \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::isLoaded() could then just return a isset($GLOBALS['TYPO3_LOADED_EXT']['extension']).
Updated by Markus Klein almost 11 years ago
Actually this is a regression.
Using basic functions like array_keys() does not work on objects like this, so this is was a breaking change.
Updated by Gerrit Code Review almost 11 years ago
- Status changed from Accepted to Under Review
Patch set 5 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/28329
Updated by Gerrit Code Review almost 11 years ago
Patch set 6 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/28329
Updated by Thomas Maroschik almost 11 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 64c46b918ef016bdd1d799c5ca06e868d601f692.
Updated by Riccardo De Contardi over 7 years ago
- Status changed from Resolved to Closed