Skip to content
  • Christian Kuhn's avatar
    [FEATURE] Extbase Request implements ServerRequestInterface · 8fde6812
    Christian Kuhn authored and Benni Mack's avatar Benni Mack committed
    The patch changes the extbase Mvc/Request to implement
    PSR-7 ServerRequestInterface: The former extbase request
    details like 'controllerAction' are changed to an
    PSR-7 attribute and the Request class is now a
    decorator - it receives the original PSR-7 request
    as constructor argument, then implements both the
    extbase RequestInterface plus PSR-7 ServerRequestInterface.
    
    This way, the Request object itself does not hold
    state (except the original request), but channels
    all get* and with* calls to the PSR-7 request object.
    This avoids creating a new standalone object and moving
    all data from the PSR-7 object into the new object.
    
    The patch is relatively conservative. The extbase
    related set* methods are kept even though they're
    all @internal and violate immutability, and various
    method signatures are not adapted towards strict
    typing, yet. The reason for that are various
    chain- and loop dependencies especially in fluid view
    that should be solved with single patches before extbase
    Request can be streamlined further. Current usages also
    rely on fallback layers within __construct(), which can
    be solved when consuming places are adapted - The patch
    would have become much bigger if that would be mixed in.
    
    Change-Id: I218de0ee30d16245e7d562d0aba2795ccc439901
    Resolves: #94428
    Releases: master
    Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/69545
    
    
    Tested-by: default avatarcore-ci <typo3@b13.com>
    Tested-by: default avatarOliver Bartsch <bo@cedev.de>
    Tested-by: default avatarBenni Mack <benni@typo3.org>
    Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
    Reviewed-by: default avatarBenni Mack <benni@typo3.org>
    8fde6812