Files
cms-core/Documentation/Changelog/14.0/Breaking-101392-GetIdentifierAndSetIdentifierFromAbstractFileRemoved.rst

55 lines
1.8 KiB
ReStructuredText

.. include:: /Includes.rst.txt
.. _breaking-101392-1742741515:
=================================================================================
Breaking: #101392 - getIdentifier() and setIdentifier() from AbstractFile removed
=================================================================================
See :issue:`101392`
Description
===========
When using the PHP API of the **File Abstraction Layer (FAL)**, several classes
are involved in representing file objects.
In addition to the
:php-short:`\TYPO3\CMS\Core\Resource\FileInterface`, there is also the
:php-short:`\TYPO3\CMS\Core\Resource\AbstractFile` class, from which most file-
related classes inherit.
To ensure stricter type consistency, the abstract class no longer implements
the methods :php:`getIdentifier()` and :php:`setIdentifier()`. Implementing
these methods is now the responsibility of each subclass.
The methods are now implemented in the respective concrete classes inheriting
from :php-short:`\TYPO3\CMS\Core\Resource\AbstractFile`.
Impact
======
In the unlikely case that the TYPO3 File Abstraction Layer has been extended
with custom PHP classes derived from
:php-short:`\TYPO3\CMS\Core\Resource\AbstractFile`, this change will
cause a fatal PHP error, as the new abstract methods :php:`getIdentifier()` and
:php:`setIdentifier()` must be implemented by the subclass.
Affected installations
======================
TYPO3 installations that include custom code extending the File Abstraction
Layer are affected. Such cases are considered highly uncommon.
Migration
=========
Implement the two methods :php:`getIdentifier()` and :php:`setIdentifier()` in
any custom file class extending
:php-short:`\TYPO3\CMS\Core\Resource\AbstractFile`.
This can also be implemented in older TYPO3 versions to ensure forward
compatibility with TYPO3 v14 and later.
.. index:: PHP-API, NotScanned, ext:core