Skip to content
  • Benni Mack's avatar
    [FEATURE] Unified PageTS resolving and parsing · ef8190c5
    Benni Mack authored and Anja Leichsenring's avatar Anja Leichsenring committed
    This change introduces two new API classes relevant for PageTSconfig:
    
    - PageTsConfigLoader
    - PageTsConfigParser
    
    The loader class collects all PageTS found in a rootline, which was
    previously available in two places - BackendUtility and TSFE, although
    they were similar, they were not the same and error-prone in the past.
    
    The previous "TsConfigParser" class had an unusal dependency to
    the BackendConditionMatcher only, which did not even allow to send in
    custom arguments.
    
    The TSFE part is now also evaluating TSconfig conditions properly,
    which was not the case in the past. This part is also now cached properly.
    
    The TSconfig inclusion ("include from the list of TSconfig inclusions")
    functionality is now built into the Info module.
    
    In addition, the hard-coded "ConditionMatcher" is now seamlessly
    injected into the parsing process, allowing
    - Decoupling of Logic and Implementation of parsing in different contexts
    - Making the ConditionMatcher extensible by having a new ConditionMatcherInterface
    
    In the next steps:
    - the UserTsConfig parsing can be applied separately and split from BE_USER
    - ConditionMatcher Interface can be used properly
    - TypoScriptParser can be split up
    - BackendUtility can be cleaned up further.
    
    The following functionality is deprecated:
    - TYPO3\CMS\Core\Configuration\TsConfigParser
    - TYPO3\CMS\Backend\Utility\BackendUtility::getRawPagesTSconfig()
    
    Resolves: #89718
    Releases: master
    Change-Id: Ibd0a2d086d7e5166f16213fa4aadffd41ecb645c
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/62349
    
    
    Tested-by: default avatarTYPO3com <noreply@typo3.com>
    Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
    Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
    Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    ef8190c5