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 TYPO3CMSCoreHttpRequestFactory 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.