Skip to content
  • Benni Mack's avatar
    [!!!][FEATURE] Introduce Backend Routing · a08ce723
    Benni Mack authored
    A new Routing API is introduced in order to streamline
    the entrypoints to the TYPO3 Backend.
    
    All previous patches by Wouter for the dispatched modules
    are the foundation for this change.
    
    Instead of using the term "module" for anything linkable
    in the backend, the term "routes" fits more. A "module"
    or an ajax call is a derivative of a route, which will
    build on this foundation.
    
    Routes can be registered via
    Configuration/Backend/Routes.php in any extension
    and are loaded solely on Backend requests.
    
    The Routing API is inspired by the Symfony Routing
    framework and mostly compatible for now
    but the TYPO3 implementation only takes around
    20% of the needed logic.
    
    There are three new classes:
    - Route (a single route with a path and some options)
    - Router (API to match paths and generate URLs)
    - UrlGenerator (Generates the URL)
    
    This patch changes the entrypoint for
    login/logout to typo3/index.php/myroute/?token=...
    making index.php the only entrypoint to the
    TYPO3 Backend in the future and using the PATH_INFO
    functionality of the browser to store the route.
    
    The main RequestHandler of all Backend modules
    detects where a PATH_INFO is given and
    then resolves to a controller/action logic and checks
    for a valid token.
    
    Once this patch is in, all non-module entrypoints
    are moved to the new format.
    
    See http://wiki.typo3.org/Blueprints/BackendRouting
    for implementation details.
    
    Resolves: #65493
    Releases: master
    Change-Id: I91b5812c833c558794f70fd4504f2da452b1c3ce
    Reviewed-on: http://review.typo3.org/37476
    
    
    Reviewed-by: default avatarNicole Cordes <typo3@cordes.co>
    Tested-by: default avatarNicole Cordes <typo3@cordes.co>
    Reviewed-by: default avatarHelmut Hummel <helmut.hummel@typo3.org>
    Tested-by: default avatarHelmut Hummel <helmut.hummel@typo3.org>
    a08ce723