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.