[!!!][TASK] Remove deprecated Signals from SignalSlot Dispatcher 78/64578/4
authorBenni Mack <benni@typo3.org>
Tue, 26 May 2020 10:57:11 +0000 (12:57 +0200)
committerBenni Mack <benni@typo3.org>
Tue, 26 May 2020 17:33:42 +0000 (19:33 +0200)
This change removes all triggers ("SlotReplacement classes") to Signals
that were used until TYPO3 v10 LTS.

The SignalSlot Dispatcher still stay for the time being, but it is unused in
TYPO3 Core now.

Resolves: #91474
Related: #91473
Releases: master
Change-Id: I08867cb5837f605e52a067457a91f40288556fab
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64578
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Tested-by: Wouter Wolters <typo3@wouterwolters.nl>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl>
Reviewed-by: Benni Mack <benni@typo3.org>
33 files changed:
typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/backend/Configuration/Services.yaml
typo3/sysext/beuser/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/beuser/Configuration/Services.yaml
typo3/sysext/core/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/core/Classes/Resource/ResourceFactory.php
typo3/sysext/core/Classes/Resource/ResourceFactoryInterface.php [deleted file]
typo3/sysext/core/Classes/Resource/ResourceStorageInterface.php
typo3/sysext/core/Classes/Resource/Service/FileProcessingService.php
typo3/sysext/core/Configuration/Services.yaml
typo3/sysext/core/Documentation/Changelog/master/Breaking-91473-DeprecatedFunctionalityRemoved.rst [new file with mode: 0644]
typo3/sysext/extbase/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/extbase/Classes/Middleware/SignalSlotDeprecator.php [deleted file]
typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php
typo3/sysext/extbase/Classes/SignalSlot/Dispatcher.php
typo3/sysext/extbase/Configuration/RequestMiddlewares.php [deleted file]
typo3/sysext/extbase/Configuration/Services.yaml
typo3/sysext/extensionmanager/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/extensionmanager/Configuration/Services.yaml
typo3/sysext/impexp/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/impexp/Configuration/Services.yaml
typo3/sysext/install/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassConstantMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php
typo3/sysext/install/Configuration/ExtensionScanner/Php/MethodCallMatcher.php
typo3/sysext/install/Configuration/Services.yaml
typo3/sysext/linkvalidator/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/linkvalidator/Configuration/Services.yaml
typo3/sysext/seo/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/seo/Configuration/Services.yaml
typo3/sysext/workspaces/Classes/Compatibility/SlotReplacement.php [deleted file]
typo3/sysext/workspaces/Classes/Service/GridDataService.php
typo3/sysext/workspaces/Configuration/Services.yaml

diff --git a/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php b/typo3/sysext/backend/Classes/Compatibility/SlotReplacement.php
deleted file mode 100644 (file)
index 7deeb99..0000000
+++ /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]);
-    }
-}
index 48dfef7..31473bb 100644 (file)
@@ -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 (file)
index aa8468e..0000000
+++ /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()]
-        );
-    }
-}
index 7e18156..2415fd4 100644 (file)
@@ -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 (file)
index 6f6590f..0000000
+++ /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()]);
-        }
-    }
-}
index 48d5087..659e9bb 100644 (file)
@@ -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 (file)
index 2b947ab..0000000
+++ /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';
-}
index 5da30a3..ec714e8 100644 (file)
@@ -21,146 +21,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
      */
     const CAPABILITY_BROWSABLE = 1;
index 36efbef..e67ea94 100644 (file)
@@ -52,16 +52,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.
      *
      * @param Resource\ResourceStorage $storage
index 4e3000f..c6d3a3d 100644 (file)
@@ -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 (file)
index 0000000..8e8cced
--- /dev/null
@@ -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 (file)
index f3da2dd..0000000
+++ /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 (file)
index 3937322..0000000
+++ /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);
-    }
-}
index edac049..4271876 100644 (file)
@@ -382,20 +382,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.
      *
index 4cb8c8f..2c74fb0 100644 (file)
@@ -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
@@ -144,152 +52,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 (file)
index 3cd8029..0000000
+++ /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'
-            ],
-        ],
-    ]
-];
index 2e592c5..09e460e 100644 (file)
@@ -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 (file)
index 51468bd..0000000
+++ /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);
-    }
-}
index 9c547ab..a765964 100644 (file)
@@ -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 (file)
index 7acf932..0000000
+++ /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()]
-        );
-    }
-}
index 321ccd2..c486cb7 100644 (file)
@@ -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 (file)
index 9cee239..0000000
+++ /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));
-    }
-}
index 37e5959..5431552 100644 (file)
@@ -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'
         ],
     ]
 ];
index 5582c10..98c6327 100644 (file)
@@ -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' => [
index b01ebb2..aa945e5 100644 (file)
@@ -4397,6 +4397,7 @@ return [
         'maximumNumberOfArguments' => 1,
         'restFiles' => [
             'Deprecation-89870-NewPSR-14EventsForExtbase-relatedSignals.rst',
+            'Breaking-91473-DeprecatedFunctionalityRemoved.rst'
         ],
     ],
     'TYPO3\CMS\Core\Html\RteHtmlParser->init' => [
index 001682a..15f7634 100644 (file)
@@ -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 (file)
index 0f0afb8..0000000
+++ /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);
-    }
-}
index 70db046..47a3fd3 100644 (file)
@@ -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 (file)
index a769fd0..0000000
+++ /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);
-    }
-}
index cbba1c2..9ebc77a 100644 (file)
@@ -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 (file)
index 94a16a2..0000000
+++ /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);
-    }
-}
index 4cda238..1cd0708 100644 (file)
@@ -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';
index 2649612..655d222 100644 (file)
@@ -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