Deprecation: #109548 - GeneralUtility::locationHeaderUrl() without PSR-7 request
See forge#109548
Description
Calling
\TYPO3\ without
providing a PSR-7
Server as second argument is deprecated.
The method previously resolved the current host and request directory via
General, which hides an implicit dependency on server
globals. The method signature has been extended to accept an explicit PSR-7 request
object, which should be passed instead.
Impact
A PHP
E_ error is triggered when
General is called without a
Server argument.
Affected installations
All installations that call
General without
passing a
\Psr\ as second argument.
The extension scanner will detect affected usages as a strong match.
Migration
Pass the current PSR-7 request as second argument to
General.
Before:
use TYPO3\CMS\Core\Utility\GeneralUtility;
$url = GeneralUtility::locationHeaderUrl($path);
After:
use Psr\Http\Message\ServerRequestInterface;
use TYPO3\CMS\Core\Utility\GeneralUtility;
$url = GeneralUtility::locationHeaderUrl($path, $request);
The PSR-7 request is available in various places, for example as an argument
in controller actions, via
$GLOBALS in legacy contexts,
or via
Server method parameters.