Deprecation: #89577 - FAL SignalSlot handling migrated to PSR-14 events

See forge#89577

Description

Within the File Abstraction Layer, all "Signals" of Extbase's SignalSlot dispatcher have been migrated to PSR-14 events.

For this reason, all FAL-related Signals have been migrated to PSR-14 event listeners which are prioritized as the first listener to be executed when an Event is fired.

The following interface has been deprecated and will be removed in TYPO3 v11:

  • \TYPO3\CMS\Core\Resource\ResourceFactoryInterface

The following constants have been deprecated and will be removed in TYPO3 v11:

  • \TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage
  • \TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCopy
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCreate
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileMove
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileRename
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileSetContents
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderAdd
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderCopy
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderDelete
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderMove
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderRename
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCopy
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileDelete
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderAdd
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderCopy
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderDelete
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderMove
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderRename
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl
  • \TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName
  • \TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess
  • \TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess

Impact

Calling the Signals still works as before, without any deprecation message triggered in order to still be fully working. However, they will likely be removed and stop working in TYPO3 v11.0.

All interfaces and constants which only existed for Signal-Slot related handling have been marked as deprecated. The ExtensionScanner will detect any usages of the PHP symbols.

Affected Installations

TYPO3 installations with extensions that hook into FAL-related functionality, e.g. "secure downloads" extension.

Migration

It is highly recommended to use the PSR-14 events and create custom event listeners and not depend on Signals to be executed in FAL anymore.

See all core examples, read the documentation about PSR-14 events and investigate especially the SlotReplacement PHP class on what can listened and modified.