Deprecation: #94664 - Pdo cache backend

See forge#94664

Description

The Caching Framework backend implementation TYPO3\CMS\Core\Cache\Backend\PdoBackend is superseded by the TYPO3\CMS\Core\Cache\Backend\Typo3DatabaseBackend since introduction of Doctrine DBAL. There is little reason to use PdoBackend instead of the Typo3DatabaseBackend and the latter is optimized much better.

PdoBackend has thus been marked as deprecated and should not be used anymore.

Impact

The implementation has been marked as deprecated, usages trigger a PHP E_USER_DEPRECATED error.

Affected Installations

Some instances may use this cache backend, but chances are low. This can be verified in the backend "Configuration" module, section "TYPO3_CONF_VARS", searching for string "PdoBackend".

Migration

TYPO3 cache backend configuration is usually done in LocalConfiguration.php. Affected instances should switch to Typo3DatabaseBackend and eventually update database schema.

LocalConfiguration.php example before:

'SYS' => [
    'caching' => [
        'cacheConfigurations' => [
            'aCache' => [
                'backend' => 'TYPO3\\CMS\\Core\\Cache\\Backend\\PdoBackend',
...

LocalConfiguration.php example after:

'SYS' => [
    'caching' => [
        'cacheConfigurations' => [
            'aCache' => [
                'backend' => 'TYPO3\\CMS\\Core\\Cache\\Backend\\Typo3DatabaseBackend',
...

In case this cache backend is still used for whatever reason and can't be dropped easily, the class should be copied to an own extension having an own namespace. The instance configuration needs to be adapted accordingly. Note there is an additional schema definition file in EXT:core/Resources/Private/Sql/Cache/Backend/PdoBackendCacheAndTags.sql, that should be copied along the way with it's location being updated in the cache class.