Deprecation: #99633 - GeneralUtility::_POST()¶
See forge#99633
Description¶
The method \TYPO3\CMS\Backend\Utility\GeneralUtility::_POST()
has
been marked deprecated and should not be used any longer.
Modern code should access GET and POST data from the PSR-7
\Psr\Http\Message\ServerRequestInterface
, and should avoid accessing
super-globals $_GET
and $_POST
directly. This will avoid future side-effects when using sub-requests. Some
GeneralUtility
related helper methods like _POST()
violate this,
using them is considered a technical debt. They are being phased out.
Impact¶
Calling the method from PHP code will trigger a PHP deprecation notice.
Affected installations¶
TYPO3 installations with third-party extensions using GeneralUtility::_POST()
are affected. This typically occurs in TYPO3 installations which
have been migrated to latest TYPO3 Core versions and
haven't been adapted properly yet.
The extension scanner will find usages with a strong match.
Migration¶
GeneralUtility::_POST()
is a helper method that retrieves
incoming HTTP body parameters / POST
parameters and returns the value.
The same result can be achieved by retrieving arguments from the request object.
An instance of the PSR-7 ServerRequestInterface
is handed over to
controllers by TYPO3 Core's PSR-15 \TYPO3\CMS\Core\Http\RequestHandlerInterface
and middleware implementations, and is available in various related scopes
like the frontend \TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer
.
Typical code:
use TYPO3\CMS\Backend\Utility\GeneralUtility;
// Before
$value = GeneralUtility::_POST('tx_scheduler');
// After
$value = $request->getParsedBody()['tx_scheduler']);