Deprecation: #91001 - Various methods within GeneralUtility

See forge#91001

Description

The following methods within GeneralUtility have been marked as deprecated, as the native PHP methods can be used directly:

  • GeneralUtility::IPv6Hex2Bin()

  • GeneralUtility::IPv6Bin2Hex()

  • GeneralUtility::compressIPv6()

  • GeneralUtility::milliseconds()

In addition, these methods are unused by Core and marked as deprecated as well:

  • GeneralUtility::linkThisUrl()

  • GeneralUtility::flushDirectory()

Impact

Calling any methods directly from PHP will trigger a PHP E_USER_DEPRECATED error.

Affected Installations

TYPO3 installations with third-party extensions using any of these methods.

Migration

As the following methods are just wrappers around native PHP methods, it is recommended to switch to native PHP to speed up performance:

  • GeneralUtility::IPv6Hex2Bin($hex): inet_pton($hex)

  • GeneralUtility::IPv6Bin2Hex($bin): inet_ntop($bin)

  • GeneralUtility::compressIPv6($address): inet_ntop(inet_pton($address))

  • GeneralUtility::milliseconds(): round(microtime(true) * 1000)

As for GeneralUtility::linkThisUrl() it is recommended to migrate to PSR-7 (UriInterface).

The method GeneralUtility::flushDirectory() uses a clearing folder structure which is only used for caching to avoid race-conditioning. It is recommended to use GeneralUtility::rmdir() or implement the code directly in the third-party extension.