Breaking: #70056 - Http-related options and HttpRequest class removed¶
See forge#70056
Description¶
The following PHP classes have been removed:
TYPO3\CMS\Core\Http\HttpRequest
TYPO3\CMS\Core\Http\Observer\Download
The following configuration options have been removed:
$GLOBALS[TYPO3_CONF_VARS][SYS][curlUse]
$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyNTLM]
$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyServer]
$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyTunnel]
$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyUserPass]
$GLOBALS[TYPO3_CONF_VARS][SYS][curlTimeout]
$GLOBALS[TYPO3_CONF_VARS][HTTP][adapter]
$GLOBALS[TYPO3_CONF_VARS][HTTP][protocol_version]
$GLOBALS[TYPO3_CONF_VARS][HTTP][follow_redirects]
$GLOBALS[TYPO3_CONF_VARS][HTTP][max_redirects]
$GLOBALS[TYPO3_CONF_VARS][HTTP][strict_redirects]
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_host]
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_port]
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_user]
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_password]
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_auth_scheme]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_peer]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_host]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_cafile]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_capath]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_local_cert]
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_passphrase]
$GLOBALS[TYPO3_CONF_VARS][HTTP][userAgent]
The following properties have been renamed:
$GLOBALS[TYPO3_CONF_VARS][HTTP][userAgent]
is now called$GLOBALS[TYPO3_CONF_VARS][HTTP][headers][User-Agent]
$GLOBALS[TYPO3_CONF_VARS][HTTP][protocol_version]
is now called$GLOBALS[TYPO3_CONF_VARS][HTTP][version]
All proxy-related options are unified within
$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy]
All redirect-related options (HTTP/follow_redirects, HTTP/max_redirects, HTTP/strict_redirects) are unified within
$GLOBALS[TYPO3_CONF_VARS][HTTP][allow_redirects]
All options related to SSL private keys (HTTP/ssl_local_cert, HTTP/ssl_passphrase) are merged into
$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_key]
All options related to verify SSL peers are merged into
$GLOBALS[TYPO3_CONF_VARS][HTTP][verify]
Additionally, the dependency to the PEAR Package "Http_Request2" (composer package name pear/http_request2
) has
been removed in favor of the PHP library Guzzle.
Impact¶
Calling the mentioned classes above will result in a fatal PHP error.
Using the options in custom PHP code will result in unexpected behavior as the options are non-existent and empty.
Using PHP code that depends on the removed PEAR library "Http_Request2" will result in unexpected behaviour and possibly a fatal PHP error.
Affected Installations¶
All 3rd party extensions calling the mentioned classes directly or using the configuration options directly, as well as installations depending on the PEAR library "Http_Request2".
Migration¶
For PHP code previously using the HttpRequest
and Download
classes a new object-oriented PSR-7-based approach is
introduced, see the Guzzle Feature integration documentation for more details. A new PHP class
TYPO3\CMS\Core\Http\RequestFactory
which generates PSR-7 compliant request objects helps in simplifying the
migration process.
All still necessary options will be migrated to new options within $GLOBALS[TYPO3_CONF_VARS][HTTP]
when the install tool is run.
In special cases, the options $GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_host]
, $GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_auth_scheme]
and $GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_host]
need to migrated manually to the newly available options.