diff --git a/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 7deeb99956e573b141ae4fb114038e9750345539..0000000000000000000000000000000000000000 --- a/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Backend\Compatibility; - -use TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent; -use TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem; -use TYPO3\CMS\Backend\Controller\EditDocumentController; -use TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent; -use TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent; -use TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent; -use TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; - -/** - * This class provides a replacement for all existing signals in EXT:backend of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function onSystemInformationToolbarEvent(SystemInformationToolbarCollectorEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - SystemInformationToolbarItem::class, - 'getSystemInformation', - [$event->getToolbarItem()] - ); - $this->signalSlotDispatcher->dispatch( - SystemInformationToolbarItem::class, - 'loadMessages', - [$event->getToolbarItem()] - ); - } - - public function onLoginProviderGetPageRenderer(ModifyPageLayoutOnLoginProviderSelectionEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - UsernamePasswordLoginProvider::class, - 'getPageRenderer', - [$event->getPageRenderer()] - ); - } - - public function onPreInitEditDocumentController(BeforeFormEnginePageInitializedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - EditDocumentController::class, - 'preInitAfter', - [$event->getController(), 'request' => $event->getRequest()] - ); - } - - public function onInitEditDocumentController(AfterFormEnginePageInitializedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - EditDocumentController::class, - 'initAfter', - [$event->getController(), 'request' => $event->getRequest()] - ); - } - - public function emitGetPagesTSconfigPreIncludeSignalBackendUtility(ModifyLoadedPageTsConfigEvent $event): void - { - $rootLine = $event->getRootLine(); - $page = end($rootLine); - $signalArguments = $this->signalSlotDispatcher->dispatch( - BackendUtility::class, - 'getPagesTSconfigPreInclude', - [$event->getTsConfig(), (int)$page['uid'], $rootLine, false] - ); - $event->setTsConfig($signalArguments[0]); - } -} diff --git a/typo3/sysext/backend/Configuration/Services.yaml b/typo3/sysext/backend/Configuration/Services.yaml index 48dfef702aac5fc36e7da8c22ee6bf9c5863ed02..31473bb36ee0cc0fb4c4a8fc868d8b85fcf2e27b 100644 --- a/typo3/sysext/backend/Configuration/Services.yaml +++ b/typo3/sysext/backend/Configuration/Services.yaml @@ -51,30 +51,6 @@ services: TYPO3\CMS\Backend\Form\FormDataProvider\SiteDatabaseEditRow: public: true - # Listener for old Signal Slots - TYPO3\CMS\Backend\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'onSystemInformationToolbarEvent' - event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onLoginProviderGetPageRenderer' - event: TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitGetPagesTSconfigPreIncludeSignalBackendUtility' - event: TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onPreInitEditDocumentController' - event: TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onInitEditDocumentController' - event: TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent - # Category security checks for backend users TYPO3\CMS\Backend\Security\CategoryPermissionsAspect: tags: diff --git a/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index aa8468e75ed205c3f81aa8f6033ec91642815b81..0000000000000000000000000000000000000000 --- a/typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Beuser\Compatibility; - -use TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent; -use TYPO3\CMS\Beuser\Controller\BackendUserController; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; - -/** - * This class provides a replacement for all existing signals in EXT:beuser of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function onSwitchUser(SwitchUserEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - BackendUserController::class, - 'switchUser', - [$event->getTargetUser()] - ); - } -} diff --git a/typo3/sysext/beuser/Configuration/Services.yaml b/typo3/sysext/beuser/Configuration/Services.yaml index 7e181563c246eecda7f2a4703d3d4f3e403e47b7..2415fd433f1be46ab9d679a99d8fd4cd7ed2a0b8 100644 --- a/typo3/sysext/beuser/Configuration/Services.yaml +++ b/typo3/sysext/beuser/Configuration/Services.yaml @@ -6,11 +6,3 @@ services: TYPO3\CMS\Beuser\: resource: '../Classes/*' - - # Listener for old Signal Slots - TYPO3\CMS\Beuser\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'onSwitchUser' - event: TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent diff --git a/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 6f6590f3f89190e8f344489111dc27a4e739ab23..0000000000000000000000000000000000000000 --- a/typo3/sysext/core/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,700 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Core\Compatibility; - -use Psr\EventDispatcher\EventDispatcherInterface; -use TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent; -use TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent; -use TYPO3\CMS\Core\Database\ReferenceIndex; -use TYPO3\CMS\Core\Database\Schema\Exception\UnexpectedSignalReturnValueTypeException; -use TYPO3\CMS\Core\Database\Schema\SqlReader; -use TYPO3\CMS\Core\Database\SoftReferenceIndex; -use TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent; -use TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent; -use TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent; -use TYPO3\CMS\Core\Imaging\IconFactory; -use TYPO3\CMS\Core\Mail\Event\AfterMailerInitializationEvent; -use TYPO3\CMS\Core\Mail\Mailer; -use TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent; -use TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent; -use TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent; -use TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent; -use TYPO3\CMS\Core\Resource\Index\FileIndexRepository; -use TYPO3\CMS\Core\Resource\Index\MetaDataRepository; -use TYPO3\CMS\Core\Resource\ResourceFactory; -use TYPO3\CMS\Core\Resource\ResourceStorage; -use TYPO3\CMS\Core\Resource\Service\FileProcessingService; -use TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent; -use TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider; -use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Core\Utility\GeneralUtility; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; - -/** - * This class provides a replacement for all existing signals in TYPO3 Core, which now act as a simple wrapper - * for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - /** - * @var EventDispatcherInterface - */ - protected $eventDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher, EventDispatcherInterface $eventDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - $this->eventDispatcher = $eventDispatcher; - } - - public function onMetaDataRepositoryRecordPostRetrieval(EnrichFileMetaDataEvent $event): void - { - $data = $event->getRecord(); - $data = new \ArrayObject($data); - $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordPostRetrieval', [$data]); - $event->setRecord($data->getArrayCopy()); - } - - public function onMetaDataRepositoryRecordUpdated(AfterFileMetaDataUpdatedEvent $event): void - { - $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordUpdated', [$event->getRecord()]); - } - - public function onMetaDataRepositoryRecordCreated(AfterFileMetaDataCreatedEvent $event): void - { - $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordCreated', [$event->getRecord()]); - } - - public function onMetaDataRepositoryRecordDeleted(AfterFileMetaDataDeletedEvent $event): void - { - $this->signalSlotDispatcher->dispatch(MetaDataRepository::class, 'recordDeleted', [$event->getFileUid()]); - } - - public function onFileIndexRepositoryRecordUpdated(AfterFileUpdatedInIndexEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - FileIndexRepository::class, - 'recordUpdated', - [$event->getRelevantProperties()] - ); - } - - public function onFileIndexRepositoryRecordCreated(AfterFileAddedToIndexEvent $event): void - { - $this->signalSlotDispatcher->dispatch(FileIndexRepository::class, 'recordCreated', [$event->getRecord()]); - } - - public function onFileIndexRepositoryRecordMarkedAsMissing(AfterFileMarkedAsMissingEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - FileIndexRepository::class, - 'recordMarkedAsMissing', - [$event->getFileUid()] - ); - } - - public function onFileIndexRepositoryRecordDeleted(AfterFileRemovedFromIndexEvent $event): void - { - $this->signalSlotDispatcher->dispatch(FileIndexRepository::class, 'recordDeleted', [$event->getFileUid()]); - } - - public function onResourceFactoryPreProcessStorage(BeforeResourceStorageInitializationEvent $event): void - { - [, $uid, $recordData, $fileIdentifier] = $this->signalSlotDispatcher->dispatch( - ResourceFactory::class, - 'preProcessStorage', - [GeneralUtility::makeInstance(ResourceFactory::class), $event->getStorageUid(), $event->getRecord(), $event->getFileIdentifier()] - ); - $event->setStorageUid($uid); - $event->setRecord($recordData); - $event->setFileIdentifier($fileIdentifier); - } - - public function onResourceFactoryPostProcessStorage(AfterResourceStorageInitializationEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceFactory::class, - 'postProcessStorage', - [GeneralUtility::makeInstance(ResourceFactory::class), $event->getStorage()] - ); - } - - public function onFileProcessingServiceEmitPreFileProcessSignal(BeforeFileProcessingEvent $event): void - { - $service = GeneralUtility::makeInstance( - FileProcessingService::class, - $event->getFile()->getStorage(), - $event->getDriver(), - $this->eventDispatcher - ); - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - FileProcessingService::SIGNAL_PreFileProcess, - [ - $service, - $event->getDriver(), - $event->getProcessedFile(), - $event->getFile(), - $event->getTaskType(), - $event->getConfiguration() - ] - ); - } - - public function onFileProcessingServiceEmitPostFileProcessSignal(AfterFileProcessingEvent $event): void - { - $service = GeneralUtility::makeInstance( - FileProcessingService::class, - $event->getFile()->getStorage(), - $event->getDriver(), - $this->eventDispatcher - ); - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - FileProcessingService::SIGNAL_PostFileProcess, - [ - $service, - $event->getDriver(), - $event->getProcessedFile(), - $event->getFile(), - $event->getTaskType(), - $event->getConfiguration() - ] - ); - } - - public function onResourceStorageEmitSanitizeFileNameSignal(SanitizeFileNameEvent $event): void - { - [$fileName] = $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_SanitizeFileName, - [ - $event->getFileName(), - $event->getTargetFolder(), - $event->getStorage(), - $event->getDriver() - ] - ); - $event->setFileName($fileName); - } - - public function onResourceStorageEmitPreFileAddSignal(BeforeFileAddedEvent $event): void - { - $targetFileName = $event->getFileName(); - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileAdd, - [ - &$targetFileName, - $event->getTargetFolder(), - $event->getSourceFilePath(), - $event->getStorage(), - $event->getDriver() - ] - ); - $event->setFileName($targetFileName); - } - - public function onResourceStorageEmitPostFileAddSignal(AfterFileAddedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileAdd, - [ - $event->getFile(), - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPreFileCopySignal(BeforeFileCopiedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileCopy, - [ - $event->getFile(), - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPostFileCopySignal(AfterFileCopiedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileCopy, - [ - $event->getFile(), - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPreFileMoveSignal(BeforeFileMovedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileMove, - [ - $event->getFile(), - $event->getFolder(), - $event->getTargetFileName() - ] - ); - } - - public function onResourceStorageEmitPostFileMoveSignal(AfterFileMovedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileMove, - [ - $event->getFile(), - $event->getFolder(), - $event->getOriginalFolder() - ] - ); - } - - public function onResourceStorageEmitPreFileRenameSignal(BeforeFileRenamedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileRename, - [ - $event->getFile(), - $event->getTargetFileName() - ] - ); - } - - public function onResourceStorageEmitPostFileRenameSignal(AfterFileRenamedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileRename, - [ - $event->getFile(), - $event->getTargetFileName() - ] - ); - } - - public function onResourceStorageEmitPreFileReplaceSignal(BeforeFileReplacedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileReplace, - [ - $event->getFile(), - $event->getLocalFilePath() - ] - ); - } - - public function onResourceStorageEmitPostFileReplaceSignal(AfterFileReplacedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileReplace, - [ - $event->getFile(), - $event->getLocalFilePath() - ] - ); - } - - public function onResourceStorageEmitPreFileCreateSignal(BeforeFileCreatedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileCreate, - [ - $event->getFileName(), - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPostFileCreateSignal(AfterFileCreatedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileCreate, - [ - $event->getFileName(), - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPreFileDeleteSignal(BeforeFileDeletedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileDelete, - [ - $event->getFile() - ] - ); - } - - public function onResourceStorageEmitPostFileDeleteSignal(AfterFileDeletedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileDelete, - [ - $event->getFile() - ] - ); - } - - public function onResourceStorageEmitPreFileSetContentsSignal(BeforeFileContentsSetEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFileSetContents, - [ - $event->getFile(), - $event->getContent() - ] - ); - } - - public function onResourceStorageEmitPostFileSetContentsSignal(AfterFileContentsSetEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFileSetContents, - [ - $event->getFile(), - $event->getContent() - ] - ); - } - - public function onResourceStorageEmitPreFolderAddSignal(BeforeFolderAddedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFolderAdd, - [ - $event->getParentFolder(), - $event->getFolderName() - ] - ); - } - - public function onResourceStorageEmitPostFolderAddSignal(AfterFolderAddedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFolderAdd, - [ - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPreFolderCopySignal(BeforeFolderCopiedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFolderCopy, - [ - $event->getFolder(), - $event->getTargetParentFolder(), - $event->getTargetFolderName() - ] - ); - } - - public function onResourceStorageEmitPostFolderCopySignal(AfterFolderCopiedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFolderCopy, - [ - $event->getFolder(), - $event->getTargetParentFolder(), - $event->getTargetFolder()->getName() - ] - ); - } - - public function onResourceStorageEmitPreFolderMoveSignal(BeforeFolderMovedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFolderMove, - [ - $event->getFolder(), - $event->getTargetParentFolder(), - $event->getTargetFolderName() - ] - ); - } - - public function onResourceStorageEmitPostFolderMoveSignal(AfterFolderMovedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFolderMove, - [ - $event->getFolder(), - $event->getTargetParentFolder(), - $event->getTargetFolder()->getName(), - $event->getFolder()->getParentFolder() - ] - ); - } - - public function onResourceStorageEmitPreFolderRenameSignal(BeforeFolderRenamedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFolderRename, - [ - $event->getFolder(), - $event->getTargetName() - ] - ); - } - - public function onResourceStorageEmitPostFolderRenameSignal(AfterFolderRenamedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFolderRename, - [ - $event->getFolder(), - $event->getFolder()->getName() - ] - ); - } - - public function onResourceStorageEmitPreFolderDeleteSignal(BeforeFolderDeletedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreFolderDelete, - [ - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPostFolderDeleteSignal(AfterFolderDeletedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PostFolderDelete, - [ - $event->getFolder() - ] - ); - } - - public function onResourceStorageEmitPreGeneratePublicUrlSignal(GeneratePublicUrlForResourceEvent $event): void - { - $publicUrl = $event->getPublicUrl(); - $urlData = ['publicUrl' => &$publicUrl]; - $this->signalSlotDispatcher->dispatch( - ResourceStorage::class, - ResourceStorage::SIGNAL_PreGeneratePublicUrl, - [ - $event->getStorage(), - $event->getDriver(), - $event->getResource(), - $event->isRelativeToCurrentScript(), - $urlData - ] - ); - $event->setPublicUrl($urlData['publicUrl']); - } - - /** - * ReferenceIndex and SoftReferenceIndex - */ - public function onReferenceIndexShouldExcludeTableFromReferenceIndexSignal( - IsTableExcludedFromReferenceIndexEvent $event - ): void { - $excludeTable = $event->isTableExcluded(); - $this->signalSlotDispatcher->dispatch( - ReferenceIndex::class, - 'shouldExcludeTableFromReferenceIndex', - [ - $event->getTable(), - &$excludeTable - ] - ); - if ($excludeTable) { - $event->markAsExcluded(); - } - } - - public function onSoftReferenceIndexSetTypoLinkPartsElementSignal(AppendLinkHandlerElementsEvent $event): void - { - $linkHandlerFound = false; - $result = $this->signalSlotDispatcher->dispatch( - SoftReferenceIndex::class, - 'setTypoLinkPartsElement', - [ - $linkHandlerFound, - $event->getLinkParts(), - $event->getContent(), - $event->getElements(), - $event->getIdx(), - $event->getTokenId() - ] - ); - if ($result[0]) { - $event->setLinkParts($result[1]); - $event->setContent($result[2]); - $event->addElements($result[3]); - } - } - - /** - * Imaging-related - */ - public function onIconFactoryEmitBuildIconForResourceSignal(ModifyIconForResourcePropertiesEvent $event): void - { - $result = $this->signalSlotDispatcher->dispatch( - IconFactory::class, - 'buildIconForResourceSignal', - [ - $event->getResource(), - $event->getSize(), - $event->getOptions(), - $event->getIconIdentifier(), - $event->getOverlayIdentifier() - ] - ); - $event->setIconIdentifier($result[3]); - $event->setOverlayIdentifier($result[4]); - } - - public function onExtensionManagementUtilityTcaIsBeingBuilt(AfterTcaCompilationEvent $event): void - { - [$tca] = $this->signalSlotDispatcher->dispatch( - ExtensionManagementUtility::class, - 'tcaIsBeingBuilt', - [ - $event->getTca() - ] - ); - $event->setTca($tca); - } - - public function onSqlReaderEmitTablesDefinitionIsBeingBuiltSignal(AlterTableDefinitionStatementsEvent $event): void - { - // Using the old class name from the install tool here to keep backwards compatibility. - $signalReturn = $this->signalSlotDispatcher->dispatch( - 'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService', - 'tablesDefinitionIsBeingBuilt', - [$event->getSqlData()] - ); - - // This is important to support old associated returns - $signalReturn = array_values($signalReturn); - $sqlString = $signalReturn[0]; - if (!is_array($sqlString)) { - throw new UnexpectedSignalReturnValueTypeException( - sprintf( - 'The signal %s of class %s returned a value of type %s, but array was expected.', - 'tablesDefinitionIsBeingBuilt', - SqlReader::class, - gettype($sqlString) - ), - 1382351456 - ); - } - $event->setSqlData($sqlString); - } - - public function onDatabaseTreeDataProviderEmitPostProcessTreeDataSignal(ModifyTreeDataEvent $event): void - { - if ($event->getProvider() instanceof DatabaseTreeDataProvider) { - $this->signalSlotDispatcher->dispatch( - DatabaseTreeDataProvider::class, - 'PostProcessTreeData', - [$event->getProvider(), $event->getTreeData()] - ); - } - } - - public function packagesMayHaveChanged(PackagesMayHaveChangedEvent $event): void - { - $this->signalSlotDispatcher->dispatch('PackageManagement', 'packagesMayHaveChanged'); - } - - public function postInitializeMailer(AfterMailerInitializationEvent $event): void - { - if ($event->getMailer() instanceof Mailer) { - $this->signalSlotDispatcher->dispatch(Mailer::class, 'postInitializeMailer', [$event->getMailer()]); - } - } -} diff --git a/typo3/sysext/core/Classes/Resource/ResourceFactory.php b/typo3/sysext/core/Classes/Resource/ResourceFactory.php index 48d50878ba155f84d0146384d67f803dfb717ebb..659e9bb89149721d02d2557d173f8d10740ebe9e 100644 --- a/typo3/sysext/core/Classes/Resource/ResourceFactory.php +++ b/typo3/sysext/core/Classes/Resource/ResourceFactory.php @@ -37,7 +37,7 @@ use TYPO3\CMS\Core\Utility\PathUtility; /** * Factory class for FAL objects */ -class ResourceFactory implements ResourceFactoryInterface, SingletonInterface +class ResourceFactory implements SingletonInterface { /** * Gets a singleton instance of this class. diff --git a/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php b/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php deleted file mode 100644 index 2b947ab34d7db7f6bf34acf17af38b80f9b95bdf..0000000000000000000000000000000000000000 --- a/typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php +++ /dev/null @@ -1,27 +0,0 @@ -<?php - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Core\Resource; - -/** - * An interface containing constants for the resource factory - * - * @deprecated This interface will be removed in TYPO3 v11 as it bears no use anymore due to PSR-14 events. - */ -interface ResourceFactoryInterface -{ - const SIGNAL_PreProcessStorage = 'preProcessStorage'; - const SIGNAL_PostProcessStorage = 'postProcessStorage'; -} diff --git a/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php b/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php index 5da30a32d098d873bfb9f26f322aa6d7253e5a7a..ec714e8c0b07f0b80b8b42bbec2a5454bde7c551 100644 --- a/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php +++ b/typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php @@ -20,146 +20,6 @@ namespace TYPO3\CMS\Core\Resource; */ interface ResourceStorageInterface { - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_SanitizeFileName = 'sanitizeFileName'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileAdd = 'preFileAdd'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileAdd = 'postFileAdd'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileCreate = 'preFileCreate'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileCreate = 'postFileCreate'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileCopy = 'preFileCopy'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileCopy = 'postFileCopy'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileMove = 'preFileMove'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileMove = 'postFileMove'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileDelete = 'preFileDelete'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileDelete = 'postFileDelete'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileRename = 'preFileRename'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileRename = 'postFileRename'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileReplace = 'preFileReplace'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileReplace = 'postFileReplace'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileSetContents = 'preFileSetContents'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileSetContents = 'postFileSetContents'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFolderAdd = 'preFolderAdd'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFolderAdd = 'postFolderAdd'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFolderCopy = 'preFolderCopy'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFolderCopy = 'postFolderCopy'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFolderMove = 'preFolderMove'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFolderMove = 'postFolderMove'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFolderDelete = 'preFolderDelete'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFolderDelete = 'postFolderDelete'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFolderRename = 'preFolderRename'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFolderRename = 'postFolderRename'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreGeneratePublicUrl = 'preGeneratePublicUrl'; - /** * Capability for being browsable by (backend) users */ diff --git a/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php b/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php index 36efbef16fae246aa8730d1d8659cbc2dda0238d..e67ea940a3062ba049120bf570fa3b774236813a 100644 --- a/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php +++ b/typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php @@ -51,16 +51,6 @@ class FileProcessingService */ protected $eventDispatcher; - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PreFileProcess = 'preFileProcess'; - - /** - * @deprecated since TYPO3 v10.2, will be removed in TYPO3 v11. Use the PSR-14 event instead. - */ - const SIGNAL_PostFileProcess = 'postFileProcess'; - /** * Creates this object. * diff --git a/typo3/sysext/core/Configuration/Services.yaml b/typo3/sysext/core/Configuration/Services.yaml index 4e3000f43087f223fc2c5ea4621390306d65092a..c6d3a3d083d2af50449f799617388c49984d39a9 100644 --- a/typo3/sysext/core/Configuration/Services.yaml +++ b/typo3/sysext/core/Configuration/Services.yaml @@ -93,202 +93,6 @@ services: shared: false public: true - # EventListeners - TYPO3\CMS\Core\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileIndexRepositoryRecordCreated' - event: TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileIndexRepositoryRecordDeleted' - event: TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileIndexRepositoryRecordMarkedAsMissing' - event: TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileIndexRepositoryRecordUpdated' - event: TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileProcessingServiceEmitPostFileProcessSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onFileProcessingServiceEmitPreFileProcessSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onMetaDataRepositoryRecordCreated' - event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onMetaDataRepositoryRecordDeleted' - event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onMetaDataRepositoryRecordPostRetrieval' - event: TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onMetaDataRepositoryRecordUpdated' - event: TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceFactoryPostProcessStorage' - event: TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceFactoryPreProcessStorage' - event: TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileAddSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileCopySignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileCreateSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileDeleteSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileMoveSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileRenameSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileReplaceSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFileSetContentsSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFolderAddSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFolderCopySignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFolderDeleteSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFolderMoveSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPostFolderRenameSignal' - event: TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileAddSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileCopySignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileCreateSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileDeleteSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileMoveSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileRenameSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileReplaceSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFileSetContentsSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFolderAddSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFolderCopySignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFolderDeleteSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFolderMoveSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreFolderRenameSignal' - event: TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitPreGeneratePublicUrlSignal' - event: TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onResourceStorageEmitSanitizeFileNameSignal' - event: TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent - - name: event.listener, - identifier: 'legacy-slot' - method: 'onReferenceIndexShouldExcludeTableFromReferenceIndexSignal' - event: TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onSoftReferenceIndexSetTypoLinkPartsElementSignal' - event: TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onIconFactoryEmitBuildIconForResourceSignal' - event: TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onExtensionManagementUtilityTcaIsBeingBuilt' - event: TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onSqlReaderEmitTablesDefinitionIsBeingBuiltSignal' - event: TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onDatabaseTreeDataProviderEmitPostProcessTreeDataSignal' - event: TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'packagesMayHaveChanged' - event: TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'postInitializeMailer' - event: TYPO3\CMS\Core\Mail\Event\AfterMailerInitializationEvent - # FAL security checks for backend users TYPO3\CMS\Core\Resource\Security\StoragePermissionsAspect: tags: diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst new file mode 100644 index 0000000000000000000000000000000000000000..8e8cced33dff5b3b184638e3b6632f2e00ab6ca4 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst @@ -0,0 +1,192 @@ +.. include:: ../../Includes.txt + +=================================================== +Breaking: #91473 - Deprecated functionality removed +=================================================== + +See :issue:`91473` + +Description +=========== + +The following PHP classes that have been previously deprecated for v10 have been removed: + +The following PHP interfaces that have been previously deprecated for v10 have been removed: + +- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface` + +The following PHP class aliases that have been previously deprecated for v10 have been removed: + +The following PHP class methods that have been previously deprecated for v10 have been removed: + +- :php:`\TYPO3\CMS\Extbase\Mvc\Controller\ActionController->emitBeforeCallActionMethodSignal` + +The following PHP static class methods that have been previously deprecated for v10 have been removed: + +The following PHP methods have been additionally deprecated and are a no-op now: + +The following methods changed signature according to previous deprecations in v10 at the end of the argument list: + +The following public class properties have been dropped: + +The following class methods have changed visibility: + +The following class properties have changed visibility: + +The following VieHelpers have changed: + +The following scheduler tasks have been removed: + +The following user TSconfig options have been dropped: + +The following TypoScript options have been dropped: + +The following constants have been dropped: + +The following class constants have been dropped: + +- :php:`\TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData` +- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage` +- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCreate` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileSetContents` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName` +- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess` +- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss` + +The following class constants have been set to protected: + +The following global options are ignored: + +The following language files and aliases have been removed: + +The following global variables have been removed: + +The following hooks have been removed: + +The following hooks don't pass the class reference anymore: + +The following signals have been removed: + +- :php:`PackageManagement::packagesMayHaveChanged` +- :php:`\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::getSystemInformation` +- :php:`\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::loadMessages` +- :php:`\TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider::getPageRenderer` +- :php:`\TYPO3\CMS\Backend\Controller\EditDocumentController::preInitAfter` +- :php:`\TYPO3\CMS\Backend\Controller\EditDocumentController::initAfter` +- :php:`\TYPO3\CMS\Backend\Utility\BackendUtility::getPagesTSconfigPreInclude` +- :php:`\TYPO3\CMS\Beuser\Controller\BackendUserController::switchUser` +- :php:`\TYPO3\CMS\Core\Database\SoftReferenceIndex::setTypoLinkPartsElement` +- :php:`\TYPO3\CMS\Core\Database\ReferenceIndex::shouldExcludeTableFromReferenceIndex` +- :php:`\TYPO3\CMS\Core\Imaging\IconFactory::buildIconForResourceSignal` +- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage` +- :php:`\TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileCreate` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileReplace` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFileSetContents` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PostFolderRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileCreate` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileReplace` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFileSetContents` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderAdd` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderCopy` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderDelete` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderMove` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreFolderRename` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl` +- :php:`\TYPO3\CMS\Core\Resource\ResourceStorageInterface::SIGNAL_SanitizeFileName` +- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess` +- :php:`\TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess` +- :php:`\TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::PostProcessTreeData` +- :php:`\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::tcaIsBeingBuilt` +- :php:`\TYPO3\CMS\Extbase\Mvc\Dispatcher::afterRequestDispatch` +- :php:`\TYPO3\CMS\Extbase\Mvc\Controller\ActionController::beforeCallActionMethod` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper::afterMappingSingleRow` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::beforeGettingObjectData` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterGettingObjectData` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::endInsertObject` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterUpdateObject` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterPersistObject` +- :php:`\TYPO3\CMS\Extbase\Persistence\Generic\Backend::afterRemoveObject` +- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionInstall` +- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionUninstall` +- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionT3DImport` +- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionStaticSqlImport` +- :php:`\TYPO3\CMS\Extensionmanager\Utility\InstallUtility::afterExtensionFileImport` +- :php:`\TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService::willInstallExtensions` +- :php:`\TYPO3\CMS\Extensionmanager\ViewHelper\ProcessAvailableActionsViewHelper::processActions` +- :php:`\TYPO3\CMS\Install\Service\SqlExpectedSchemaService::tablesDefinitionIsBeingBuilt` +- :php:`\TYPO3\CMS\Impexp\Utility\ImportExportUtility::afterImportExportInitialisation` +- :php:`\TYPO3\CMS\Lang\Service\TranslationService::postProcessMirrorUrl` +- :php:`\TYPO3\CMS\Linkvalidator\LinkAnalyzer::beforeAnalyzeRecord` +- :php:`\TYPO3\CMS\Seo\Canonical\CanonicalGenerator::beforeGeneratingCanonical` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss` +- :php:`\TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss` + +The following features are now always enabled: + +The following features have been removed: + +The following database tables have been removed: + +The following database fields have been removed: + +The following php doc annotations have been removed: + +The following global JavaScript functions have been removed: + +The following JavaScript modules have been removed: + +The following global instances have been removed: + +Impact +====== + +Instantiating or requiring the PHP classes or calling the PHP methods directly will trigger PHP :php:`E_ERROR` errors. + +.. index:: Backend, CLI, FlexForm, Fluid, Frontend, JavaScript, LocalConfiguration, PHP-API, TCA, TSConfig, TypoScript, PartiallyScanned diff --git a/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index f3da2ddefc887c453ed62ccd77cea54d0d24f2ae..0000000000000000000000000000000000000000 --- a/typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,164 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Extbase\Compatibility; - -use TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent; -use TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent; -use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent; -use TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent; -use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; -use TYPO3\CMS\Extbase\Mvc\Dispatcher; -use TYPO3\CMS\Extbase\Persistence\Generic\Backend; -use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; - -/** - * This class provides a replacement for all existing signals in EXT:extbase of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function afterRequestDispatched(AfterRequestDispatchedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Dispatcher::class, - 'afterRequestDispatch', - [$event->getRequest(), $event->getResponse()] - ); - } - - public function beforeCallActionMethod(BeforeActionCallEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ActionController::class, - 'beforeCallActionMethod', - [ - $event->getControllerClassName(), - $event->getActionMethodName(), - $event->getPreparedArguments() - ] - ); - } - - public function afterDataMappedForObject(AfterObjectThawedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - DataMapper::class, - 'afterMappingSingleRow', - [ - $event->getObject() - ] - ); - } - - public function emitBeforeGettingObjectDataSignal(ModifyQueryBeforeFetchingObjectDataEvent $event): void - { - $signalArguments = $this->signalSlotDispatcher->dispatch( - Backend::class, - 'beforeGettingObjectData', - [ - $event->getQuery() - ] - ); - $event->setQuery($signalArguments[0]); - } - - public function emitAfterGettingObjectDataSignal(ModifyResultAfterFetchingObjectDataEvent $event): void - { - $signalArguments = $this->signalSlotDispatcher->dispatch( - Backend::class, - 'afterGettingObjectData', - [$event->getQuery(), $event->getResult()] - ); - $event->setResult($signalArguments[1]); - } - - public function emitEndInsertObjectSignal(EntityFinalizedAfterPersistenceEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Backend::class, - 'endInsertObject', - [ - $event->getObject() - ] - ); - } - - public function emitAfterInsertObjectSignal(EntityAddedToPersistenceEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Backend::class, - 'afterInsertObject', - [ - $event->getObject() - ] - ); - } - - public function emitAfterUpdateObjectSignal(EntityUpdatedInPersistenceEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Backend::class, - 'afterUpdateObject', - [ - $event->getObject() - ] - ); - } - - public function emitAfterPersistObjectSignal(EntityPersistedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Backend::class, - 'afterPersistObject', - [ - $event->getObject() - ] - ); - } - - public function emitAfterRemoveObjectSignal(EntityRemovedFromPersistenceEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - Backend::class, - 'afterRemoveObject', - [ - $event->getObject() - ] - ); - } -} diff --git a/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php b/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php deleted file mode 100644 index 3937322fe641153c9dfbaa3e29345f8e898552a9..0000000000000000000000000000000000000000 --- a/typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Extbase\Middleware; - -use Psr\Http\Message\ResponseInterface; -use Psr\Http\Message\ServerRequestInterface; -use Psr\Http\Server\MiddlewareInterface; -use Psr\Http\Server\RequestHandlerInterface; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher; - -/** - * @internal - */ -class SignalSlotDeprecator implements MiddlewareInterface -{ - /** - * @var Dispatcher - */ - protected $dispatcher; - - public function __construct(Dispatcher $dispatcher) - { - $this->dispatcher = $dispatcher; - } - - /** - * @param ServerRequestInterface $request - * @param RequestHandlerInterface $handler - * @return ResponseInterface - */ - public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface - { - $this->dispatcher->reportDeprecatedSignalSlots(); - return $handler->handle($request); - } -} diff --git a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php index edac0499f21207af0a169d79c81a56e36e2ccf20..42718766e648aa2f5107f0cb80854aab9d2bd18f 100644 --- a/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php +++ b/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php @@ -381,20 +381,6 @@ class ActionController implements ControllerInterface } } - /** - * Emits a signal before the current action is called - * - * @param array $preparedArguments - */ - protected function emitBeforeCallActionMethodSignal(array $preparedArguments) - { - trigger_error( - __METHOD__ . ' is deprecated and will be removed in version 11.0 - use PSR-14 events instead.', - E_USER_DEPRECATED - ); - $this->signalSlotDispatcher->dispatch(__CLASS__, 'beforeCallActionMethod', [static::class, $this->actionMethodName, $preparedArguments]); - } - /** * Prepares a view for the current action. * By default, this method tries to locate a view with a name matching the current action. diff --git a/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php b/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php index 4cb8c8fd8fa586151577c4a77437b34c8d10b700..2c74fb000d07a1591c501fb8a82926d238b2b089 100644 --- a/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php +++ b/typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php @@ -18,102 +18,10 @@ declare(strict_types=1); namespace TYPO3\CMS\Extbase\SignalSlot; use Psr\Log\LoggerInterface; -use TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent; -use TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent; -use TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem; -use TYPO3\CMS\Backend\Controller\EditDocumentController; -use TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent; -use TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent; -use TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent; -use TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider; -use TYPO3\CMS\Backend\Utility\BackendUtility; -use TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent; -use TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent; -use TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent; -use TYPO3\CMS\Core\Database\ReferenceIndex; -use TYPO3\CMS\Core\Database\SoftReferenceIndex; -use TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent; -use TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent; -use TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent; -use TYPO3\CMS\Core\Imaging\IconFactory; -use TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent; -use TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent; -use TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent; -use TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileAddedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileAddedToIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileContentsSetEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMarkedAsMissingEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMetaDataUpdatedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileMovedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileProcessingEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileRemovedFromIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileReplacedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFileUpdatedInIndexEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderAddedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderMovedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterFolderRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\AfterResourceStorageInitializationEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileAddedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileContentsSetEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileCreatedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileMovedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileProcessingEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFileReplacedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderAddedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderCopiedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderDeletedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderMovedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeFolderRenamedEvent; -use TYPO3\CMS\Core\Resource\Event\BeforeResourceStorageInitializationEvent; -use TYPO3\CMS\Core\Resource\Event\EnrichFileMetaDataEvent; -use TYPO3\CMS\Core\Resource\Event\GeneratePublicUrlForResourceEvent; -use TYPO3\CMS\Core\Resource\Event\SanitizeFileNameEvent; -use TYPO3\CMS\Core\Resource\Index\FileIndexRepository; -use TYPO3\CMS\Core\Resource\Index\MetaDataRepository; -use TYPO3\CMS\Core\Resource\ResourceFactory; -use TYPO3\CMS\Core\Resource\ResourceFactoryInterface; -use TYPO3\CMS\Core\Resource\ResourceStorage; -use TYPO3\CMS\Core\Resource\ResourceStorageInterface; -use TYPO3\CMS\Core\Resource\Service\FileProcessingService; use TYPO3\CMS\Core\SingletonInterface; -use TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent; -use TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider; -use TYPO3\CMS\Core\Utility\ExtensionManagementUtility; -use TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent; -use TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent; -use TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent; -use TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent; -use TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent; -use TYPO3\CMS\Extbase\Mvc\Controller\ActionController; use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; -use TYPO3\CMS\Extbase\Persistence\Generic\Backend; -use TYPO3\CMS\Extbase\Persistence\Generic\Mapper\DataMapper; use TYPO3\CMS\Extbase\SignalSlot\Exception\InvalidSlotException; use TYPO3\CMS\Extbase\SignalSlot\Exception\InvalidSlotReturnException; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent; -use TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService; -use TYPO3\CMS\Extensionmanager\Utility\InstallUtility; -use TYPO3\CMS\Extensionmanager\ViewHelpers\ProcessAvailableActionsViewHelper; /** * A dispatcher which dispatches signals by calling its registered slot methods @@ -143,152 +51,6 @@ class Dispatcher implements SingletonInterface */ protected $logger; - /** - * @var string[][] - */ - protected $deprecatedSlots = [ - FileIndexRepository::class => [ - 'recordUpdated' => AfterFileUpdatedInIndexEvent::class, - 'recordCreated' => AfterFileAddedToIndexEvent::class, - 'recordDeleted' => AfterFileRemovedFromIndexEvent::class, - 'recordMarkedAsMissing' => AfterFileMarkedAsMissingEvent::class - ], - MetaDataRepository::class => [ - 'recordPostRetrieval' => EnrichFileMetaDataEvent::class, - 'recordUpdated' => AfterFileMetaDataUpdatedEvent::class, - 'recordCreated' => AfterFileMetaDataCreatedEvent::class, - 'recordDeleted' => AfterFileMetaDataDeletedEvent::class - ], - ResourceFactory::class => [ - ResourceFactoryInterface::SIGNAL_PreProcessStorage => BeforeResourceStorageInitializationEvent::class, - ResourceFactoryInterface::SIGNAL_PostProcessStorage => AfterResourceStorageInitializationEvent::class, - ], - ResourceStorage::class => [ - ResourceStorageInterface::SIGNAL_SanitizeFileName => SanitizeFileNameEvent::class, - ResourceStorageInterface::SIGNAL_PreFileAdd => BeforeFileAddedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileAdd => AfterFileAddedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileCopy => BeforeFileCopiedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileCopy => AfterFileCopiedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileMove => BeforeFileMovedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileMove => AfterFileMovedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileRename => BeforeFileRenamedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileRename => AfterFileRenamedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileReplace => BeforeFileReplacedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileReplace => AfterFileReplacedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileCreate => BeforeFileCreatedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileCreate => AfterFileCreatedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileDelete => BeforeFileDeletedEvent::class, - ResourceStorageInterface::SIGNAL_PostFileDelete => AfterFileDeletedEvent::class, - ResourceStorageInterface::SIGNAL_PreFileSetContents => BeforeFileContentsSetEvent::class, - ResourceStorageInterface::SIGNAL_PostFileSetContents => AfterFileContentsSetEvent::class, - ResourceStorageInterface::SIGNAL_PreFolderAdd => BeforeFolderAddedEvent::class, - ResourceStorageInterface::SIGNAL_PostFolderAdd => AfterFolderAddedEvent::class, - ResourceStorageInterface::SIGNAL_PreFolderCopy => BeforeFolderCopiedEvent::class, - ResourceStorageInterface::SIGNAL_PostFolderCopy => AfterFolderCopiedEvent::class, - ResourceStorageInterface::SIGNAL_PreFolderMove => BeforeFolderMovedEvent::class, - ResourceStorageInterface::SIGNAL_PostFolderMove => AfterFolderMovedEvent::class, - ResourceStorageInterface::SIGNAL_PreFolderRename => BeforeFolderRenamedEvent::class, - ResourceStorageInterface::SIGNAL_PostFolderRename => AfterFolderRenamedEvent::class, - ResourceStorageInterface::SIGNAL_PreFolderDelete => BeforeFolderDeletedEvent::class, - ResourceStorageInterface::SIGNAL_PostFolderDelete => AfterFolderDeletedEvent::class, - ResourceStorageInterface::SIGNAL_PreGeneratePublicUrl => GeneratePublicUrlForResourceEvent::class, - ], - FileProcessingService::class => [ - FileProcessingService::SIGNAL_PreFileProcess => BeforeFileProcessingEvent::class, - FileProcessingService::SIGNAL_PostFileProcess => AfterFileProcessingEvent::class, - ], - IconFactory::class => [ - 'buildIconForResourceSignal' => ModifyIconForResourcePropertiesEvent::class, - ], - SoftReferenceIndex::class => [ - 'setTypoLinkPartsElement' => AppendLinkHandlerElementsEvent::class, - ], - ReferenceIndex::class => [ - 'shouldExcludeTableFromReferenceIndex' => IsTableExcludedFromReferenceIndexEvent::class, - ], - ExtensionManagementUtility::class => [ - 'tcaIsBeingBuilt' => AfterTcaCompilationEvent::class, - ], - 'TYPO3\\CMS\\Install\\Service\\SqlExpectedSchemaService' => [ - 'tablesDefinitionIsBeingBuilt' => AlterTableDefinitionStatementsEvent::class, - ], - DatabaseTreeDataProvider::class => [ - 'PostProcessTreeData' => ModifyTreeDataEvent::class, - ], - BackendUtility::class => [ - 'getPagesTSconfigPreInclude' => ModifyLoadedPageTsConfigEvent::class - ], - EditDocumentController::class => [ - 'preInitAfter' => BeforeFormEnginePageInitializedEvent::class, - 'initAfter' => AfterFormEnginePageInitializedEvent::class, - ], - SystemInformationToolbarItem::class => [ - 'getSystemInformation' => SystemInformationToolbarCollectorEvent::class, - 'loadMessages' => SystemInformationToolbarCollectorEvent::class - ], - UsernamePasswordLoginProvider::class => [ - 'getPageRenderer' => ModifyPageLayoutOnLoginProviderSelectionEvent::class - ], - \TYPO3\CMS\Extbase\Mvc\Dispatcher::class => [ - 'afterRequestDispatch' => AfterRequestDispatchedEvent::class - ], - ActionController::class => [ - 'beforeCallActionMethod' => BeforeActionCallEvent::class - ], - DataMapper::class => [ - 'afterMappingSingleRow' => AfterObjectThawedEvent::class - ], - Backend::class => [ - 'beforeGettingObjectData' => ModifyQueryBeforeFetchingObjectDataEvent::class, - 'afterGettingObjectData' => ModifyResultAfterFetchingObjectDataEvent::class, - 'endInsertObject' => EntityFinalizedAfterPersistenceEvent::class, - 'afterInsertObject' => EntityAddedToPersistenceEvent::class, - 'afterUpdateObject' => EntityUpdatedInPersistenceEvent::class, - 'afterPersistObject' => EntityPersistedEvent::class, - 'afterRemoveObject' => EntityRemovedFromPersistenceEvent::class - ], - // Strings are used here on purpose for all non-required system extensions. Do not change to - // Fqn::class *unless* you also declare each and every extension whose classes are listed - // here as explicit and mandatory dependencies of EXT:extbase. - 'TYPO3\\CMS\\Beuser\\Controller\\BackendUserController' => [ - 'switchUser' => SwitchUserEvent::class - ], - 'TYPO3\\CMS\\Lang\\Service\\TranslationService' => [ - 'postProcessMirrorUrl' => 'TYPO3\\CMS\\Install\\Service\\Event\\ModifyLanguagePackRemoteBaseUrlEvent' - ], - 'TYPO3\\CMS\\Linkvalidator\\LinkAnalyzer' => [ - 'beforeAnalyzeRecord' => 'TYPO3\\CMS\\Linkvalidator\\Event\\BeforeRecordIsAnalyzedEvent' - ], - 'TYPO3\\CMS\\Impexp\\Utility\\ImportExportUtility' => [ - 'afterImportExportInitialisation' => 'TYPO3\\CMS\\Impexp\\Event\\BeforeImportEvent' - ], - 'TYPO3\\CMS\\Seo\\Canonical\\CanonicalGenerator' => [ - 'beforeGeneratingCanonical' => 'TYPO3\\CMS\\Seo\\Event\\ModifyUrlForCanonicalTagEvent' - ], - 'TYPO3\\CMS\\Workspaces\\Service\\GridDataService' => [ - 'generateDataArray.beforeCaching' => 'TYPO3\\CMS\\Workspaces\\Event\\AfterCompiledCacheableDataForWorkspaceEvent', - 'generateDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\AfterDataGeneratedForWorkspaceEvent', - 'getDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\GetVersionedDataEvent', - 'sortDataArray.postProcess' => 'TYPO3\\CMS\\Workspaces\\Event\\SortVersionedDataEvent', - ], - 'PackageManagement' => [ - 'packagesMayHaveChanged' => PackagesMayHaveChangedEvent::class, - ], - InstallUtility::class => [ - 'afterExtensionInstall' => AfterPackageActivationEvent::class, - 'afterExtensionUninstall' => AfterPackageDeactivationEvent::class, - 'afterExtensionT3DImport' => AfterExtensionDatabaseContentHasBeenImportedEvent::class, - 'afterExtensionStaticSqlImport' => AfterExtensionStaticDatabaseContentHasBeenImportedEvent::class, - 'afterExtensionFileImport' => AfterExtensionFilesHaveBeenImportedEvent::class, - ], - ExtensionManagementService::class => [ - 'willInstallExtensions' => BeforePackageActivationEvent::class - ], - ProcessAvailableActionsViewHelper::class => [ - 'processActions' => AvailableActionsForExtensionEvent::class - ] - ]; - /** * @param ObjectManagerInterface $objectManager * @param LoggerInterface $logger @@ -408,32 +170,4 @@ class Dispatcher implements SingletonInterface { return $this->slots[$signalClassName][$signalName] ?? []; } - - /** - * This method is called by TYPO3\CMS\Extbase\Middleware\SignalSlotDeprecator to collect and report - * the deprecated slots only once per request. - * - * @internal - */ - public function reportDeprecatedSignalSlots(): void - { - $messages = []; - foreach ($this->slots as $signalClassName => $signals) { - if (isset($this->deprecatedSlots[$signalClassName])) { - foreach (array_keys($signals) as $signalName) { - $eventClass = $this->deprecatedSlots[$signalClassName][$signalName] ?? null; - if ($eventClass !== null) { - $messages[] = 'The signal "' . $signalName . '" in "' . $signalClassName . '" is deprecated and will stop working in TYPO3 11.0. Use the PSR-14 event: "' . $eventClass . '"'; - } - } - } - } - if (count($messages)) { - trigger_error( - 'The following deprecated signals are connected:' . LF . - implode(LF, $messages), - E_USER_DEPRECATED - ); - } - } } diff --git a/typo3/sysext/extbase/Configuration/RequestMiddlewares.php b/typo3/sysext/extbase/Configuration/RequestMiddlewares.php deleted file mode 100644 index 3cd80296162b8ec2650e32dc59c25c4e51bb822e..0000000000000000000000000000000000000000 --- a/typo3/sysext/extbase/Configuration/RequestMiddlewares.php +++ /dev/null @@ -1,12 +0,0 @@ -<?php - -return [ - 'backend' => [ - 'typo3/cms-extbase/signal-slot-deprecator' => [ - 'target' => \TYPO3\CMS\Extbase\Middleware\SignalSlotDeprecator::class, - 'after' => [ - 'typo3/cms-core/normalized-params-attribute' - ], - ], - ] -]; diff --git a/typo3/sysext/extbase/Configuration/Services.yaml b/typo3/sysext/extbase/Configuration/Services.yaml index 2e592c50e129a974842460020ab08aa1177498e0..09e460e77e4e0347c3bac9506f51361b1929300b 100644 --- a/typo3/sysext/extbase/Configuration/Services.yaml +++ b/typo3/sysext/extbase/Configuration/Services.yaml @@ -45,49 +45,5 @@ services: factory: ['@TYPO3\CMS\Core\Cache\CacheManager', 'getCache'] arguments: ['extbase'] - # Listener for old Signal Slots - TYPO3\CMS\Extbase\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'afterRequestDispatched' - event: TYPO3\CMS\Extbase\Event\Mvc\AfterRequestDispatchedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'beforeCallActionMethod' - event: TYPO3\CMS\Extbase\Event\Mvc\BeforeActionCallEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'afterDataMappedForObject' - event: TYPO3\CMS\Extbase\Event\Persistence\AfterObjectThawedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitBeforeGettingObjectDataSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\ModifyQueryBeforeFetchingObjectDataEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterGettingObjectDataSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\ModifyResultAfterFetchingObjectDataEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitEndInsertObjectSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\EntityFinalizedAfterPersistenceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterInsertObjectSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\EntityAddedToPersistenceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterUpdateObjectSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\EntityUpdatedInPersistenceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterRemoveObjectSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\EntityRemovedFromPersistenceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterPersistObjectSignal' - event: TYPO3\CMS\Extbase\Event\Persistence\EntityPersistedEvent - TYPO3\CMS\Extbase\Mvc\View\GenericViewResolver: ~ TYPO3\CMS\Extbase\Mvc\View\ViewResolverInterface: '@TYPO3\CMS\Extbase\Mvc\View\GenericViewResolver' diff --git a/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 51468bd612fd62cac5ccbb30ae884bf8c6cb36d7..0000000000000000000000000000000000000000 --- a/typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Extensionmanager\Compatibility; - -use TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent; -use TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent; -use TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent; -use TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent; -use TYPO3\CMS\Extensionmanager\Service\ExtensionManagementService; -use TYPO3\CMS\Extensionmanager\Utility\InstallUtility; -use TYPO3\CMS\Extensionmanager\ViewHelpers\ProcessAvailableActionsViewHelper; - -/** - * This class provides a replacement for all existing signals in EXT:extensionmanager of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function afterExtensionInstallSlot(AfterPackageActivationEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - InstallUtility::class, - 'afterExtensionInstall', - [ - $event->getPackageKey(), - $event->getEmitter() - ] - ); - } - - public function afterExtensionUninstallSlot(AfterPackageDeactivationEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - InstallUtility::class, - 'afterExtensionUninstall', - [ - $event->getPackageKey(), - $event->getEmitter() - ] - ); - } - - public function emitAfterExtensionT3DImportSignal(AfterExtensionDatabaseContentHasBeenImportedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - InstallUtility::class, - 'afterExtensionT3DImport', - [ - $event->getImportFileName(), - $event->getImportResult(), - $event->getEmitter() - ] - ); - } - - public function emitAfterExtensionStaticSqlImportSignal(AfterExtensionStaticDatabaseContentHasBeenImportedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - InstallUtility::class, - 'afterExtensionStaticSqlImport', - [ - $event->getSqlFileName(), - $event->getEmitter() - ] - ); - } - - public function emitAfterExtensionFileImportSignal(AfterExtensionFilesHaveBeenImportedEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - InstallUtility::class, - 'afterExtensionFileImport', - [ - $event->getDestinationAbsolutePath(), - $event->getEmitter() - ] - ); - } - - public function emitWillInstallExtensionsSignal(BeforePackageActivationEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ExtensionManagementService::class, - 'willInstallExtensions', - [ - $event->getPackageKeys() - ] - ); - } - - public function emitProcessActionsSignal(AvailableActionsForExtensionEvent $event): void - { - $actions = $event->getActions(); - $this->signalSlotDispatcher->dispatch( - ProcessAvailableActionsViewHelper::class, - 'processActions', - [ - $event->getPackageData(), - &$actions, - ] - ); - $event->setActions($actions); - } -} diff --git a/typo3/sysext/extensionmanager/Configuration/Services.yaml b/typo3/sysext/extensionmanager/Configuration/Services.yaml index 9c547ab8306a25e7e01a627fccf88025dd16b0e5..a765964393cf8aedd9419a769594022c123c3f3e 100644 --- a/typo3/sysext/extensionmanager/Configuration/Services.yaml +++ b/typo3/sysext/extensionmanager/Configuration/Services.yaml @@ -10,37 +10,6 @@ services: # EXT:reports to be installed, ignore for now. exclude: '../Classes/{Task,Report}' - TYPO3\CMS\Extensionmanager\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'emitWillInstallExtensionsSignal' - event: TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'afterExtensionInstallSlot' - event: TYPO3\CMS\Core\Package\Event\AfterPackageActivationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'afterExtensionUninstallSlot' - event: TYPO3\CMS\Core\Package\Event\AfterPackageDeactivationEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterExtensionT3DImportSignal' - event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionDatabaseContentHasBeenImportedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterExtensionStaticSqlImportSignal' - event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionStaticDatabaseContentHasBeenImportedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterExtensionFileImportSignal' - event: TYPO3\CMS\Extensionmanager\Event\AfterExtensionFilesHaveBeenImportedEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'emitProcessActionsSignal' - event: TYPO3\CMS\Extensionmanager\Event\AvailableActionsForExtensionEvent - TYPO3\CMS\Extensionmanager\Command\ActivateExtensionCommand: tags: - name: 'console.command' diff --git a/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 7acf93287f59268c3aa17bf672fdfab05a26a8d9..0000000000000000000000000000000000000000 --- a/typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,51 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Impexp\Compatibility; - -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Impexp\Event\BeforeImportEvent; -use TYPO3\CMS\Impexp\Utility\ImportExportUtility; - -/** - * This class provides a replacement for all existing signals in EXT:impexp of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function emitAfterImportExportInitialisationSignal(BeforeImportEvent $event): void - { - $this->signalSlotDispatcher->dispatch( - ImportExportUtility::class, - 'afterImportExportInitialisation', - [$event->getImport()] - ); - } -} diff --git a/typo3/sysext/impexp/Configuration/Services.yaml b/typo3/sysext/impexp/Configuration/Services.yaml index 321ccd27139c8f0f891badbcfdf29659473c87d0..c486cb77a6dfe9b2251f33721a3ebfd950c5594b 100644 --- a/typo3/sysext/impexp/Configuration/Services.yaml +++ b/typo3/sysext/impexp/Configuration/Services.yaml @@ -14,11 +14,3 @@ services: tags: - name: 'console.command' command: 'impexp:import' - - # Listener for old Signal Slots - TYPO3\CMS\Impexp\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'emitAfterImportExportInitialisationSignal' - event: TYPO3\CMS\Impexp\Event\BeforeImportEvent diff --git a/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 9cee2399958bcd3c463822ee3e379f3a0a39acbd..0000000000000000000000000000000000000000 --- a/typo3/sysext/install/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,56 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Install\Compatibility; - -use TYPO3\CMS\Core\Http\Uri; -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Install\Service\Event\ModifyLanguagePackRemoteBaseUrlEvent; - -/** - * This class provides a replacement for all existing signals in EXT:install of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function onLanguagePackProcessMirrorUrl(ModifyLanguagePackRemoteBaseUrlEvent $event): void - { - $languagePackBaseUrl = (string)$event->getBaseUrl(); - $this->signalSlotDispatcher->dispatch( - 'TYPO3\\CMS\\Lang\\Service\\TranslationService', - 'postProcessMirrorUrl', - [ - 'extensionKey' => $event->getPackageKey(), - 'mirrorUrl' => &$languagePackBaseUrl, - ] - ); - $event->setBaseUrl(new Uri($languagePackBaseUrl)); - } -} diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php index 37e5959873de6ff5050c166aa1027df998cab279..54315520067fa89d5b5ee286edc8f9d5b1333b7a 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php @@ -196,191 +196,228 @@ return [ 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreProcessStorage' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostProcessStorage' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileAdd' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileCopy' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileCreate' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileDelete' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileMove' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileRename' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileReplace' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFileSetContents' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderAdd' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderCopy' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderDelete' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderMove' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PostFolderRename' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileAdd' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileCopy' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileCreate' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileDelete' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileMove' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileRename' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileReplace' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFileSetContents' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderAdd' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderCopy' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderDelete' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderMove' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreFolderRename' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_PreGeneratePublicUrl' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface::SIGNAL_SanitizeFileName' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PreFileProcess' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Resource\Service\FileProcessingService::SIGNAL_PostFileProcess' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::SIGNAL_PostProcessTreeData' => [ 'restFiles' => [ 'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst', 'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching' => [ 'restFiles' => [ 'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst', 'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss' => [ 'restFiles' => [ 'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst', 'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss' => [ 'restFiles' => [ 'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst', 'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss' => [ 'restFiles' => [ 'Feature-89733-NewPSR-14EventsForExistingSignalSlotsInCoreExtension.rst', 'Deprecation-89733-SignalSlotsInCoreExtensionMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ] ]; diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php index 5582c107df272f4be848fcc2db0fe3f02855c545..98c632757dc05bc319ad94778f5be16c51a8f3a9 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php @@ -1341,6 +1341,7 @@ return [ 'TYPO3\CMS\Core\Resource\ResourceFactoryInterface' => [ 'restFiles' => [ 'Deprecation-89577-FALSignalSlotHandlingMigratedToPSR-14Events.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Configuration\TsConfigParser' => [ diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php index b01ebb26e48b6376920a424fbb3ff63abf111b62..aa945e54ff6b866ee67dac71845c538d9c0d3253 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php @@ -4397,6 +4397,7 @@ return [ 'maximumNumberOfArguments' => 1, 'restFiles' => [ 'Deprecation-89870-NewPSR-14EventsForExtbase-relatedSignals.rst', + 'Breaking-91473-DeprecatedFunctionalityRemoved.rst' ], ], 'TYPO3\CMS\Core\Html\RteHtmlParser->init' => [ diff --git a/typo3/sysext/install/Configuration/Services.yaml b/typo3/sysext/install/Configuration/Services.yaml index 001682a48bb9f3b59964ff3c7858585d56932bec..15f76349eb9f8ad387c25395a2ed65fe957e3d36 100644 --- a/typo3/sysext/install/Configuration/Services.yaml +++ b/typo3/sysext/install/Configuration/Services.yaml @@ -8,12 +8,3 @@ services: identifier: 'install/show-latest-errors' method: 'appendMessage' event: TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent - TYPO3\CMS\Install\Compatibility\SlotReplacement: - autowire: true - autoconfigure: true - public: false - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'onLanguagePackProcessMirrorUrl' - event: TYPO3\CMS\Install\Service\Event\ModifyLanguagePackRemoteBaseUrlEvent diff --git a/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 0f0afb8fb6035f9ceb2b1c52a1d03cd89e5e6779..0000000000000000000000000000000000000000 --- a/typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,59 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Linkvalidator\Compatibility; - -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Linkvalidator\Event\BeforeRecordIsAnalyzedEvent; -use TYPO3\CMS\Linkvalidator\LinkAnalyzer; - -/** - * This class provides a replacement for all existing signals in EXT:linkvalidator of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function beforeLinkAnalyzerRecordIsAnalyzed(BeforeRecordIsAnalyzedEvent $event): void - { - [$results, $record] = $this->signalSlotDispatcher->dispatch( - LinkAnalyzer::class, - 'beforeAnalyzeRecord', - [ - $event->getResults(), - $event->getRecord(), - $event->getTableName(), - $event->getFields(), - $event->getLinkAnalyzer() - ] - ); - $event->setRecord($record); - $event->setResults($results); - } -} diff --git a/typo3/sysext/linkvalidator/Configuration/Services.yaml b/typo3/sysext/linkvalidator/Configuration/Services.yaml index 70db046bb187adce50fc21580ecbc80ff52f9994..47a3fd398927d97b14dac440f5fea490e30e806b 100644 --- a/typo3/sysext/linkvalidator/Configuration/Services.yaml +++ b/typo3/sysext/linkvalidator/Configuration/Services.yaml @@ -30,10 +30,3 @@ services: identifier: 'rte-check-link-to-file' event: TYPO3\CMS\Core\Html\Event\BrokenLinkAnalysisEvent method: 'checkFileLink' - - TYPO3\CMS\Linkvalidator\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'beforeLinkAnalyzerRecordIsAnalyzed' - event: TYPO3\CMS\Linkvalidator\Event\BeforeRecordIsAnalyzedEvent diff --git a/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index a769fd08e1865f5cb4615959a783cd4eb2530e5e..0000000000000000000000000000000000000000 --- a/typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,53 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Seo\Compatibility; - -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Seo\Canonical\CanonicalGenerator; -use TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent; - -/** - * This class provides a replacement for all existing signals in EXT:seo of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function beforeGeneratingCanonical(ModifyUrlForCanonicalTagEvent $event): void - { - $href = $event->getUrl(); - $this->signalSlotDispatcher->dispatch( - CanonicalGenerator::class, - 'beforeGeneratingCanonical', - [&$href] - ); - $event->setUrl($href); - } -} diff --git a/typo3/sysext/seo/Configuration/Services.yaml b/typo3/sysext/seo/Configuration/Services.yaml index cbba1c295d3706efe70bba482a40bb43eddb78d6..9ebc77a2fe470f8ca4a18475d87a3c2f2c2c7f46 100644 --- a/typo3/sysext/seo/Configuration/Services.yaml +++ b/typo3/sysext/seo/Configuration/Services.yaml @@ -7,13 +7,6 @@ services: TYPO3\CMS\Seo\: resource: '../Classes/*' - TYPO3\CMS\Seo\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'beforeGeneratingCanonical' - event: TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent - TYPO3\CMS\Seo\HrefLang\HrefLangGenerator: tags: - name: event.listener diff --git a/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php deleted file mode 100644 index 94a16a2b6aee70ca32f7dcef738a71668c1c99da..0000000000000000000000000000000000000000 --- a/typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -declare(strict_types=1); - -/* - * This file is part of the TYPO3 CMS project. - * - * It is free software; you can redistribute it and/or modify it under - * the terms of the GNU General Public License, either version 2 - * of the License, or any later version. - * - * For the full copyright and license information, please read the - * LICENSE.txt file that was distributed with this source code. - * - * The TYPO3 project - inspiring people to share! - */ - -namespace TYPO3\CMS\Workspaces\Compatibility; - -use TYPO3\CMS\Extbase\SignalSlot\Dispatcher as SignalSlotDispatcher; -use TYPO3\CMS\Workspaces\Event\AfterCompiledCacheableDataForWorkspaceEvent; -use TYPO3\CMS\Workspaces\Event\AfterDataGeneratedForWorkspaceEvent; -use TYPO3\CMS\Workspaces\Event\GetVersionedDataEvent; -use TYPO3\CMS\Workspaces\Event\SortVersionedDataEvent; -use TYPO3\CMS\Workspaces\Service\GridDataService; - -/** - * This class provides a replacement for all existing signals in EXT:workspaces of TYPO3 Core, which now act as a - * simple wrapper for PSR-14 events with a simple ("first prioritized") listener implementation. - * - * @internal Please note that this class will likely be removed in TYPO3 v11, and Extension Authors should - * switch to PSR-14 event listeners. - */ -class SlotReplacement -{ - /** - * @var SignalSlotDispatcher - */ - protected $signalSlotDispatcher; - - public function __construct(SignalSlotDispatcher $signalSlotDispatcher) - { - $this->signalSlotDispatcher = $signalSlotDispatcher; - } - - public function onGenerateDataArrayBeforeCaching(AfterCompiledCacheableDataForWorkspaceEvent $event): void - { - [$obj, $dataArray, $versions] = $this->signalSlotDispatcher->dispatch( - GridDataService::class, - GridDataService::SIGNAL_GenerateDataArray_BeforeCaching, - [$event->getGridService(), $event->getData(), $event->getVersions()] - ); - $event->setData($dataArray); - $event->setVersions($versions); - } - - public function onGenerateDataArrayPostProcessing(AfterDataGeneratedForWorkspaceEvent $event): void - { - [$obj, $dataArray] = $this->signalSlotDispatcher->dispatch( - GridDataService::class, - GridDataService::SIGNAL_GenerateDataArray_PostProcesss, - [$event->getGridService(), $event->getData(), $event->getVersions()] - ); - $event->setData($dataArray); - } - - public function onGetDataPostProcessing(GetVersionedDataEvent $event): void - { - [$obj, $dataArray, $start, $limit, $dataArrayPart] = $this->signalSlotDispatcher->dispatch( - GridDataService::class, - GridDataService::SIGNAL_GetDataArray_PostProcesss, - [$event->getGridService(), $event->getData(), $event->getStart(), $event->getLimit(), $event->getDataArrayPart()] - ); - $event->setData($dataArray); - $event->setDataArrayPart($dataArrayPart); - } - - public function onSortDataPostProcessing(SortVersionedDataEvent $event): void - { - [$obj, $dataArray, $sortingColumn, $sortingDirection] = $this->signalSlotDispatcher->dispatch( - GridDataService::class, - GridDataService::SIGNAL_SortDataArray_PostProcesss, - [$event->getGridService(), $event->getData(), $event->getSortColumn(), $event->getSortDirection()] - ); - $event->setData($dataArray); - $event->setSortColumn($sortingColumn); - $event->setSortDirection($sortingDirection); - } -} diff --git a/typo3/sysext/workspaces/Classes/Service/GridDataService.php b/typo3/sysext/workspaces/Classes/Service/GridDataService.php index 4cda2383e0370535a24abda185a0c09cbafb08cc..1cd07087a3bc723c83f94a73dc0fbbcb06c31668 100644 --- a/typo3/sysext/workspaces/Classes/Service/GridDataService.php +++ b/typo3/sysext/workspaces/Classes/Service/GridDataService.php @@ -41,23 +41,6 @@ class GridDataService implements LoggerAwareInterface { use LoggerAwareTrait; - /** - * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events - */ - const SIGNAL_GenerateDataArray_BeforeCaching = 'generateDataArray.beforeCaching'; - /** - * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events - */ - const SIGNAL_GenerateDataArray_PostProcesss = 'generateDataArray.postProcess'; - /** - * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events - */ - const SIGNAL_GetDataArray_PostProcesss = 'getDataArray.postProcess'; - /** - * @deprecated will be removed in TYPO3 v11 in favor of PSR-14 events - */ - const SIGNAL_SortDataArray_PostProcesss = 'sortDataArray.postProcess'; - const GridColumn_Collection = 'Workspaces_Collection'; const GridColumn_CollectionLevel = 'Workspaces_CollectionLevel'; const GridColumn_CollectionParent = 'Workspaces_CollectionParent'; diff --git a/typo3/sysext/workspaces/Configuration/Services.yaml b/typo3/sysext/workspaces/Configuration/Services.yaml index 2649612811def30f370d5e2807d5000cc1485d09..655d222eee1a64b0b5c8ac2767679f2057c89929 100644 --- a/typo3/sysext/workspaces/Configuration/Services.yaml +++ b/typo3/sysext/workspaces/Configuration/Services.yaml @@ -29,22 +29,3 @@ services: tags: - name: 'console.command' command: 'workspace:autopublish' - - TYPO3\CMS\Workspaces\Compatibility\SlotReplacement: - tags: - - name: event.listener - identifier: 'legacy-slot' - method: 'onGenerateDataArrayBeforeCaching' - event: TYPO3\CMS\Workspaces\Event\AfterCompiledCacheableDataForWorkspaceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onGenerateDataArrayPostProcessing' - event: TYPO3\CMS\Workspaces\Event\AfterDataGeneratedForWorkspaceEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onGetDataPostProcessing' - event: TYPO3\CMS\Workspaces\Event\GetVersionedDataEvent - - name: event.listener - identifier: 'legacy-slot' - method: 'onSortDataPostProcessing' - event: TYPO3\CMS\Workspaces\Event\SortVersionedDataEvent