90 lines
3.5 KiB
ReStructuredText
90 lines
3.5 KiB
ReStructuredText
.. include:: /Includes.rst.txt
|
|
|
|
.. _breaking-101291-1688740732:
|
|
|
|
==================================================
|
|
Breaking: #101291 - Introduce capabilities bit set
|
|
==================================================
|
|
|
|
See :issue:`101291`
|
|
|
|
Description
|
|
===========
|
|
|
|
The capabilities property of the :php:`ResourceStorage` and drivers
|
|
(:php:`LocalDriver`/:php:`AbstractDriver`) have been converted from an integer
|
|
(holding a bit value) to an instance of a new :php:`BitSet` class
|
|
:php:`\TYPO3\CMS\Core\Resource\Capabilities`.
|
|
|
|
This affects the public API of the following interface methods:
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\DriverInterface::getCapabilities()`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\DriverInterface::mergeConfigurationCapabilities()`
|
|
|
|
In consequence, all mentioned methods of implementations are affected as well,
|
|
those of:
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\AbstractDriver::getCapabilities()`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\LocalDriver::mergeConfigurationCapabilities()`
|
|
|
|
Also the following constants have been removed:
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_BROWSABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_PUBLIC`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_WRITABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_HIERARCHICAL_IDENTIFIERS`
|
|
|
|
|
|
Impact
|
|
======
|
|
|
|
The return type of the following methods, respective their implementations have
|
|
changed from :php:`int` to :php:`\TYPO3\CMS\Core\Resource\Capabilities`:
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\DriverInterface::getCapabilities()`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Driver\DriverInterface::mergeConfigurationCapabilities()`
|
|
|
|
The type of the parameter :php:`$capabilities` of the method
|
|
:php:`mergeConfigurationCapabilities()` has been changed from :php:`int` to
|
|
:php:`\TYPO3\CMS\Core\Resource\Capabilities`.
|
|
|
|
The usage of the mentioned, removed constants of
|
|
:php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface` will lead to errors.
|
|
|
|
|
|
Affected installations
|
|
======================
|
|
|
|
Installations that implement custom drivers and therefore directly implement
|
|
:php:`\TYPO3\CMS\Core\Resource\Driver\DriverInterface` or extend
|
|
:php:`\TYPO3\CMS\Core\Resource\Driver\AbstractDriver`.
|
|
|
|
Also, installations that use the removed constants of
|
|
:php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface`.
|
|
|
|
|
|
Migration
|
|
=========
|
|
|
|
When using mentioned methods that formerly returned the bit value as integer or
|
|
expected the bit value as integer parameter need to use the :php:`Capabilities`
|
|
class instead. It behaves exactly the same as the plain integer. If the plain
|
|
integer value needs to be retrieved, :php:`__toInt()` can be called on
|
|
:php:`Capabilities` instances.
|
|
|
|
The following removed constants
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_BROWSABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_PUBLIC`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_WRITABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::CAPABILITY_HIERARCHICAL_IDENTIFIERS`
|
|
|
|
can be replaced with public constants of the new :php:`Capabilities` class:
|
|
|
|
- :php:`\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_BROWSABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_PUBLIC`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_WRITABLE`
|
|
- :php:`\TYPO3\CMS\Core\Resource\Capabilities::CAPABILITY_HIERARCHICAL_IDENTIFIERS`
|
|
|
|
.. index:: FAL, PHP-API, NotScanned, ext:core
|