Feature: #89733 - New PSR-14 events for existing Signal Slots in Core Extension

See forge#89733

Description

PSR-14 EventDispatching allows for TYPO3 Extensions or PHP packages to extend TYPO3 Core functionality in an exchangeable way.

The following new PSR-14 events have been introduced:

  • TYPO3\CMS\Backend\Authentication\Event\SwitchUserEvent

  • TYPO3\CMS\Backend\Backend\Event\SystemInformationToolbarCollectorEvent

  • TYPO3\CMS\Backend\Controller\Event\BeforeFormEnginePageInitializedEvent

  • TYPO3\CMS\Backend\Controller\Event\AfterFormEnginePageInitializedEvent

  • TYPO3\CMS\Backend\LoginProvider\Event\ModifyPageLayoutOnLoginProviderSelectionEvent

  • TYPO3\CMS\Core\Imaging\Event\ModifyIconForResourcePropertiesEvent

  • TYPO3\CMS\Core\DataHandling\Event\IsTableExcludedFromReferenceIndexEvent

  • TYPO3\CMS\Core\DataHandling\Event\AppendLinkHandlerElementsEvent

  • TYPO3\CMS\Core\Configuration\Event\AfterTcaCompilationEvent

  • TYPO3\CMS\Core\Database\Event\AlterTableDefinitionStatementsEvent

  • TYPO3\CMS\Core\Tree\Event\ModifyTreeDataEvent

  • TYPO3\CMS\Core\Configuration\Event\ModifyLoadedPageTsConfigEvent

  • TYPO3\CMS\Impexp\Event\BeforeImportEvent

  • TYPO3\CMS\Install\Service\Event\ModifyLanguagePackRemoteBaseUrlEvent

  • TYPO3\CMS\Linkvalidator\Event\BeforeRecordIsAnalyzedEvent

  • TYPO3\CMS\Seo\Event\ModifyUrlForCanonicalTagEvent

  • TYPO3\CMS\Workspaces\Event\AfterCompiledCacheableDataForWorkspaceEvent

  • TYPO3\CMS\Workspaces\Event\AfterDataGeneratedForWorkspaceEvent

  • TYPO3\CMS\Workspaces\Event\GetVersionedDataEvent

  • TYPO3\CMS\Workspaces\Event\SortVersionedDataEvent

They replace the existing Extbase-based Signal Slots

  • TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::getSystemInformation

  • TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::loadMessages

  • TYPO3\CMS\Backend\LoginProvider\UsernamePasswordLoginProvider::getPageRenderer

  • TYPO3\CMS\Backend\Controller\EditDocumentController::preInitAfter

  • TYPO3\CMS\Backend\Controller\EditDocumentController::initAfter

  • TYPO3\CMS\Backend\Utility\BackendUtility::getPagesTSconfigPreInclude

  • TYPO3\CMS\Beuser\Controller\BackendUserController::switchUser

  • TYPO3\CMS\Core\Database\SoftReferenceIndex::setTypoLinkPartsElement

  • TYPO3\CMS\Core\Database\ReferenceIndex::shouldExcludeTableFromReferenceIndex

  • TYPO3\CMS\Core\Imaging\IconFactory::buildIconForResourceSignal

  • TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::PostProcessTreeData

  • TYPO3\CMS\Core\Utility\ExtensionManagementUtility::tcaIsBeingBuilt

  • TYPO3\CMS\Impexp\Utility\ImportExportUtility::afterImportExportInitialisation

  • TYPO3\CMS\Install\Service\SqlExpectedSchemaService::tablesDefinitionIsBeingBuilt

  • TYPO3\CMS\Lang\Service\TranslationService::postProcessMirrorUrl

  • TYPO3\CMS\Linkvalidator\LinkAnalyzer::beforeAnalyzeRecord

  • TYPO3\CMS\Seo\Canonical\CanonicalGenerator::beforeGeneratingCanonical

  • TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_BeforeCaching

  • TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GenerateDataArray_PostProcesss

  • TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_GetDataArray_PostProcesss

  • TYPO3\CMS\Workspaces\Service\GridDataService::SIGNAL_SortDataArray_PostProcesss

Impact

It is now possible to add listeners to the new PSR-14 Events which define a clear API what can be read or modified.

The listeners can be added to the Configuration/Services.yaml as it is done in TYPO3's shipped extensions as well.