Skip to content
Snippets Groups Projects
  1. Aug 10, 2020
  2. Jun 05, 2020
  3. Apr 15, 2020
  4. Apr 14, 2020
  5. Apr 13, 2020
  6. Mar 28, 2020
  7. Aug 06, 2019
  8. Jul 13, 2019
    • Benni Mack's avatar
      [!!!][TASK] Remove dependencies of TSFE · e50b1c1a
      Benni Mack authored
      This patch re-arranges the TYPO3 Core internally used
      middlewares for lifting off the weight of $GLOBALS['TSFE']
      as Site Handling already introduced a lot of functionality
      which can now be utilized further.
      
      For this reason, the Frontend Rendering chain has
      been adapted.
      
      * If there is a "Site" + "Language" resolved, this information can
      be used directly, as there are no dependencies currently.
      
      * Frontend + Backend User Authentication works regardless
      of TSFE, Frontend User is added to the Request object as
      attribute to be added to TSFE later-on.
      
      * Resolving the Page ("slug") and mapping them to Page
      Arguments (URL parts + GET parameters) as well as validation
      against cHash is fully decoupled from TSFE.
      
      After that, TSFE is instantiated, which now gets all resolved
      objects injected.
      
      TSFE now only resolves the rootline against the proper permissions
      (auth) and validates the final page. Once done, TypoScript is
      compiled / cached.
      
      TSFE still contains the rootline, TypoScript, and the information
      about which non-cacheables are there.
      
      RequestHandler creates or fetches cached content, but currently piped
      through TSFE. This should be simplified further later-on.
      
      Resolves: #88717
      Releases: master
      Change-Id: I12807455fd8b01493b2da45cf73a5c532b108cbe
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/61155
      
      
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      Tested-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      e50b1c1a
  9. Jun 05, 2019
  10. May 24, 2019
  11. Feb 07, 2019
  12. Dec 20, 2018
    • Benni Mack's avatar
      [!!!][TASK] Remove deprecated code related to TSFE · 09632eef
      Benni Mack authored
      The following code related to TSFE has been removed:
      
      PHP classes:
      * TYPO3\CMS\Core\PageTitle\AltPageTitleProvider
      * TYPO3\CMS\Frontend\Page\ExternalPageUrlHandler
      * TYPO3\CMS\Frontend\Page\PageGenerator
      * TYPO3\CMS\Frontend\Page\EidUtility
      
      PHP interfaces:
      * TYPO3\CMS\Frontend\Http\UrlHandlerInterface
      
      Methods that have been marked as protected
      * tempPageCacheContent()
      * realPageCacheContent()
      * setPageCacheContent()
      * clearPageCacheContent_pidList()
      * setSysLastChanged()
      * contentStrReplace()
      
      Dropped TSFE methods
      * mergingWithGetVars()
      * connectToDB()
      * initFEuser()
      * checkAlternativeIdMethods()
      * initializeBackendUser()
      * getPageShortcut()
      * pageUnavailableAndExit()
      * pageNotFoundAndExit()
      * checkPageUnavailableHandler()
      * pageUnavailableHandler()
      * pageNotFoundHandler()
      * pageErrorHandler()
      * makeCacheHash()
      * initTemplate()
      * handleDataSubmission()
      * initializeRedirectUrlHandlers()
      * redirectToExternalUrl()
      * checkPageForMountpointRedirect()
      * checkPageForShortcutRedirect()
      * redirectToCurrentPage()
      * processOutput()
      * sendCacheHeaders()
      * sendHttpHeadersDirectly()
      * storeSessionData()
      * previewInfo()
      * hook_eofe()
      * addTempContentHttpHeaders()
      * setCSS()
      * getUniqueId()
      * readLLfile()
      * getLLL()
      * initLLvars()
      * convPOSTCharset()
      * convertCharsetRecursivelyToUtf8()
      * domainNameMatchesCurrentRequest()
      * getDomainDataForPid()
      * getDomainNameForPid()
      
      Dropped TSFE properties
      * activeUrlHandlers
      * page_cache_reg1
      * siteScript
      * loginUser
      * gr_list
      * beUserLogin
      * workspacePreview
      * ADMCMD_preview_BEUSER_uid
      * showHiddenPage
      * showHiddenRecords
      * debug
      * MP_defaults
      * sys_language_uid
      * sys_language_mode
      * sys_language_content
      * sys_language_contentOL
      * altPageTitle
      * lang
      
      TSFE Properties now marked as protected
      * loginAllowedInBranch
      * loginAllowedInBranch_mode
      * cacheTimeOutDefault
      * cacheContentFlag
      * cacheExpires
      * isClientCachable
      * no_cacheBeforePageGen
      * tempContent
      * pagesTSconfig
      * pageCacheTags
      * uniqueCounter
      * uniqueString
      * pageAccessFailureHistory
      
      TSFE Method Signature changes
      * calculateLinkVars now 1st parameter is required
      * preparePageContentGeneration now 1st parameter is required
      4th Parameter of TSFE->__construct() now unused
      
      Removed TypoScript
      * config.typolinkCheckRootline
      * config.titleTagFunction
      * config.USERUID_substToken
      * config.USERNAME_substToken
      
      Hooks
      $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-PostProc']
      
      Database fields:
      * index_phash.data_page_reg1
      
      Resolves: #87235
      Releases: master
      Change-Id: Id95bb0ccb30852fd115fb9da7754fa2e64374a41
      Reviewed-on: https://review.typo3.org/59226
      
      
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
      Tested-by: default avatarGeorg Ringer <georg.ringer@gmail.com>
      Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
      09632eef
  13. Dec 19, 2018
    • Benni Mack's avatar
      [!!!][TASK] Remove deprecated frontend-related hooks and include scripts · 4ea922d0
      Benni Mack authored
      The following hooks have been removed:
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['preBeUser']
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkAlternativeIdMethods-PostProc']
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['checkDataSubmission']
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/index_ts.php']['preprocessRequest']
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['connectToDB']
      - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_previewInfo']
      
      The class EidRequestHandler has been removed.
      
      eID targets cannot include a scriptpath anymore:
      - $GLOBALS['TYPO3_CONF_VARS']['FE']['eID_include']['my_eID'] = 'EXT:benni/Scripts/download.php';
      
      Instead, they must contain a target (callable, class/method, function).
      
      The various hooks are still in place in deprecated methods within TSFE which will be removed
      in the next patch. Also, now hardly usable PSR-15 middlewares will be cleaned up separately
      as well.
      
      Resolves: #87220
      Releases: master
      Change-Id: Ic54af83c97f2e6d2fba4346e382240d0fac6a2dc
      Reviewed-on: https://review.typo3.org/59217
      
      
      Reviewed-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Tested-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: default avatarWouter Wolters <typo3@wouterwolters.nl>
      Tested-by: default avatarWouter Wolters <typo3@wouterwolters.nl>
      4ea922d0
  14. Sep 30, 2018
  15. Sep 29, 2018
    • Benni Mack's avatar
      [FEATURE] Introduce RouteEnhancers for Page-based Routing · 4844fae6
      Benni Mack authored
      Page-based routing can now be configured within a site
      configuration to add so-called "route enhancers" which
      allow to add more placeholders to a route for a page.
      
      There are three Enhancers that TYPO3 now ships with:
      - SimpleEnhancer
      - PluginEnhancer
      - ExtbasePluginEnhancer
      
      It is also possible to add custom enhancers by third-
      party extensions.
      
      Each placeholder within an enhancer can receive a
      so-called "Aspect", usually used for mapping speaking
      values instead of IDs, or month-names in an archive
      link, and "modifiers" to modify a placeholder.
      
      The simple enhancer transfers a link parameter,
      previously maybe used to add a `&product=123`,
      which will now result into `/product/123` for a
      page. PluginEnhancer adds a namespace, common
      for simple plugins or Pi-Based plugins, and
      the ExtbasePluginEnhancer adds logic for multiple
      route variants to be added, depending on the
      controller/action combinations.
      
      Aspects are processors / modifiers / mappers to
      transfer a placeholder value back & forth to
      make each placeholder value more "speaking".
      
      TYPO3 Core ships with the following aspects:
      * LocaleModifier (for localized path segments)
      * StaticValueMapper (for path segments with a static list)
      * StaticRangeMapper (for pagination)
      * PersistedAliasMapper (for slug fields)
      * PersistedPatternMapper (for database records without slug fields)
      
      Routing now returns a so-called "PageArguments" object
      which is then used for evaluating site-based URL
      handling and the cHash calculation.
      
      It is highly discouraged to access _GET or _POST
      variables within any kind of code now, instead
      the PSR-7 request object should be used as much
      as possible.
      
      Releases: master
      Resolves: #86365
      Change-Id: I77e001a5790f1ab3bce75695ef0e1615411e2bd9
      Reviewed-on: https://review.typo3.org/58384
      
      
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: default avatarSusanne Moog <susanne.moog@typo3.org>
      Tested-by: default avatarSusanne Moog <susanne.moog@typo3.org>
      Reviewed-by: default avatarOliver Hader <oliver.hader@typo3.org>
      Tested-by: default avatarOliver Hader <oliver.hader@typo3.org>
      4844fae6
  16. Sep 17, 2018
    • Benni Mack's avatar
      [TASK] Streamline hooks and middlewares related to PSR-15 · 6cb30999
      Benni Mack authored
      With PSR-15 it is not necessary to use any custom hooks during
      the frontend request setup process anymore, as middlewares
      are flexible enough to manipulate anything people want to do.
      
      On top, various middlewares are also declared internal as
      the usages are not really necessary to be publically exposed.
      - typo3/cms-core/normalized-params-attribute
      - typo3/cms-backend/legacy-document-template
      - typo3/cms-backend/output-compression
      - typo3/cms-backend/response-headers
      - typo3/cms-frontend/timetracker
      - typo3/cms-frontend/preprocessing
      - typo3/cms-frontend/eid
      - typo3/cms-frontend/content-length-headers
      - typo3/cms-frontend/tsfe
      - typo3/cms-frontend/output-compression
      - typo3/cms-frontend/prepare-tsfe-rendering
      - typo3/cms-frontend/shortcut-and-mountpoint-redirect
      
      Resolves: #86279
      Releases: master
      Change-Id: I14fbd7b026acdc84fb23ca43cd395de5b7b9c4b6
      Reviewed-on: https://review.typo3.org/58253
      
      
      Reviewed-by: default avatarAndreas Fernandez <a.fernandez@scripting-base...>
      6cb30999
  17. Sep 13, 2018
  18. Jul 27, 2018
  19. May 31, 2018
  20. May 11, 2018
    • Benni Mack's avatar
      [TASK] Deprecate various TSFE methods · 0235c136
      Benni Mack authored
      A lot of functionality has been migrated from
      TypoScriptFrontendController into middlewares
      - functionality that has now no direct influence
      in the so-called controller of the frontend (TSFE)
      anymore. The respective methods are never called
      anymore from TYPO3 Core, and extensions that
      bootstrap their own frontend should ensure that
      the respective Middlewares are boot up and called,
      e.g. via custom stacks or just by setting up
      the "frontend" middleware stack.
      
      The following methods are now deprecated:
      - connectToDB()
      - checkAlternativeIdMethods()
      - initializeBackendUser()
      - handleDataSubmission()
      - setCSS()
      - convPOSTCharset()
      
      Additionally, there are some methods in TSFE
      which have been marked as "internal" but had the
      PHP visibility "public", which were now
      migrated to "protected".
      
      - getPageAndRootline()
      - checkRootlineForIncludeSection()
      - setSysPageWhereClause()
      - checkAndSetAlias()
      - getHash()
      - getLockHash()
      - setUrlIdToken()
      
      Resolves: #84965
      Releases: master
      C...
      0235c136
  21. May 10, 2018
  22. May 09, 2018
  23. May 04, 2018