---
title: "Deprecation: #99633 - GeneralUtility::_POST()"
manual: "TYPO3 Core Changelog"
version: "main"
permalink: "https://docs.typo3.org/permalink/changelog:deprecation-99633-1674121794"
source: "Changelog/12.2/Deprecation-99633-GeneralUtilityPOST.rst"
typo3-version: "12.2"
typo3-major: 12
type: "deprecation"
issue: 99633
forge: "https://forge.typo3.org/issues/99633"
tags: ["Backend", "PHP-API", "FullyScanned", "ext:backend"]
rendered: "2026-09-24T21:45:06+00:00"
---

# Deprecation: #99633 - GeneralUtility::\_POST() {#deprecation-99633-1674121794}

See [forge#99633](https://forge.typo3.org/issues/99633)

## Description {#description}

The method `\TYPO3\CMS\Core\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 {#impact}

Calling the method from PHP code will trigger a PHP deprecation notice.

## Affected installations {#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 {#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:

```php
use TYPO3\CMS\Core\Utility\GeneralUtility;

// Before
$value = GeneralUtility::_POST('tx_scheduler');

// After
$value = $request->getParsedBody()['tx_scheduler']);
```
