-
A new "Context" concept is added which allows to keep the state of common TYPO3 Request Data in form of so-called Aspects. An aspect contains properties which can be fetched, but only the ones that are really necessary, instead of exposing a full object (e.g. BE_USER). The main goal is to centralize some global variables distributed in various places. In the first step the following variables are considered: - $TSFE->showHiddenPages - $TSFE->showHiddenRecords - $TSFE->beUserLogin - $TSFE->gr_list - $TSFE->loginUser - $GLOBALS[SIM_EXEC_TIME] - $GLOBALS['BE_USER']->workspace For now the Context is a singleton object, but should be fetched from a DI container. Sometimes a custom context is necessary, so it is cloned (see usage in TSFE). The difference to the PSR-7 request attributes is that the context is ONLY related to data access (like permissions / visibility) and also independent if TYPO3 is running via HTTP or CLI (thus, can be used in CLI mode as well). Next Steps: - Migrate PageRepository->versioningWorkspaceId - Migrate TSFE->simUserGroup - Use DateTimeAspect everywhere - Introduce Language + Page Aspects - Introduce the context object into ContentObjectRenderer and cObjects - Use Contexts in RestrictionContainers - Use Contexts in TYPO3 Backend - Decouple sys_page behaviour from TSFE where applicable - Ensure TypoScript conditions continue to work / have a documented alternative Resolves: #85389 Releases: master Change-Id: I9e27e581a1632fcd8c3c6a9e0954b76b91f42c52 Reviewed-on: https://review.typo3.org/57104 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Stefan Bürk <stefan.buerk@pure-metal.de> Tested-by: Stefan Bürk <stefan.buerk@pure-metal.de> Reviewed-by: Susanne Moog <susanne.moog@typo3.org> Tested-by: Susanne Moog <susanne.moog@typo3.org> Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de> Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
5f8f50a0
Loading