diff --git a/typo3/sysext/core/Classes/Package/PackageManager.php b/typo3/sysext/core/Classes/Package/PackageManager.php index 294b3664088da0f96cb54305811af2a125122d18..e63846301c25293687b7e08404f83bfe773bd4b8 100644 --- a/typo3/sysext/core/Classes/Package/PackageManager.php +++ b/typo3/sysext/core/Classes/Package/PackageManager.php @@ -21,7 +21,6 @@ use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface; use TYPO3\CMS\Core\Core\ClassLoadingInformation; use TYPO3\CMS\Core\Core\Environment; use TYPO3\CMS\Core\Information\Typo3Version; -use TYPO3\CMS\Core\Package\Event\BeforePackageActivationEvent; use TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent; use TYPO3\CMS\Core\Package\Exception\InvalidPackageKeyException; use TYPO3\CMS\Core\Package\Exception\InvalidPackageManifestException; @@ -316,13 +315,6 @@ class PackageManager implements SingletonInterface $this->scanAvailablePackages(); } - public function beforeInstallationEventListener(BeforePackageActivationEvent $event): void - { - if (TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_BE) { - $this->scanAvailablePackages(); - } - } - /** * Scans all directories for a certain package. * diff --git a/typo3/sysext/core/Classes/ServiceProvider.php b/typo3/sysext/core/Classes/ServiceProvider.php index fc8a922ec8b23491348aec6e58350c614bd595c5..d5b534ef3c2bfde1bcf11b4ed53381f1e025eadb 100644 --- a/typo3/sysext/core/Classes/ServiceProvider.php +++ b/typo3/sysext/core/Classes/ServiceProvider.php @@ -53,6 +53,7 @@ class ServiceProvider extends AbstractServiceProvider { return [ EventDispatcherInterface::class => [ static::class, 'provideFallbackEventDispatcher' ], + EventDispatcher\ListenerProvider::class => [ static::class, 'extendEventListenerProvider' ], ] + parent::getExtensions(); } @@ -105,6 +106,18 @@ class ServiceProvider extends AbstractServiceProvider return new EventDispatcher\ListenerProvider($container); } + public static function extendEventListenerProvider( + ContainerInterface $container, + EventDispatcher\ListenerProvider $listenerProvider + ): EventDispatcher\ListenerProvider { + $listenerProvider->addListener( + Package\Event\PackagesMayHaveChangedEvent::class, + Package\PackageManager::class, + 'packagesMayHaveChanged' + ); + return $listenerProvider; + } + public static function getDependencyOrderingService(ContainerInterface $container): Service\DependencyOrderingService { return new Service\DependencyOrderingService(); diff --git a/typo3/sysext/core/Configuration/Services.yaml b/typo3/sysext/core/Configuration/Services.yaml index 4a5291ca131b39b118ba8ff1cf9eeba063e07d9b..2b461c5e46679ef7d2f84a4ce074d3195b2c755e 100644 --- a/typo3/sysext/core/Configuration/Services.yaml +++ b/typo3/sysext/core/Configuration/Services.yaml @@ -56,14 +56,6 @@ services: arguments: $configPath: "%env(TYPO3:configPath)%/sites" - TYPO3\CMS\Core\Package\PackageManager: - autoconfigure: false - tags: - - name: event.listener - identifier: 'typo3-core' - method: 'packagesMayHaveChanged' - event: TYPO3\CMS\Core\Package\Event\PackagesMayHaveChangedEvent - TYPO3\CMS\Core\Package\FailsafePackageManager: autoconfigure: false