diff --git a/typo3/sysext/core/Classes/Core/Bootstrap.php b/typo3/sysext/core/Classes/Core/Bootstrap.php index 5b05d04a70cd0061f80244f7483825efe48467b7..a8804d3bbd40bd65ded4a7404f9992da849c87ff 100644 --- a/typo3/sysext/core/Classes/Core/Bootstrap.php +++ b/typo3/sysext/core/Classes/Core/Bootstrap.php @@ -257,6 +257,7 @@ class Bootstrap { $packages = $GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages'] ?? []; if (!empty($packages)) { + trigger_error('Support for runtime activated packages will be removed in TYPO3 v11.0.', E_USER_DEPRECATED); foreach ($packages as $runtimeAddedPackageKey) { $packageManager->activatePackageDuringRuntime($runtimeAddedPackageKey); } diff --git a/typo3/sysext/core/Classes/Package/PackageManager.php b/typo3/sysext/core/Classes/Package/PackageManager.php index 72c0fdb665a115231cb8ac428348a5888557234b..bbfc1d9c7c7b2824794dc733849921e1b2ff623c 100644 --- a/typo3/sysext/core/Classes/Package/PackageManager.php +++ b/typo3/sysext/core/Classes/Package/PackageManager.php @@ -317,6 +317,7 @@ class PackageManager implements SingletonInterface * * @param string $packageKey * @return PackageInterface + * @deprecated will be removed in TYPO3 v11.0 */ protected function registerPackageDuringRuntime($packageKey) { @@ -576,6 +577,7 @@ class PackageManager implements SingletonInterface * Enables packages during runtime, but no class aliases will be available * * @param string $packageKey + * @deprecated will be removed in TYPO3 v11.0 */ public function activatePackageDuringRuntime($packageKey) { diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst new file mode 100644 index 0000000000000000000000000000000000000000..7eaf2428af563f20f16b777c5f8bd0823c7c6840 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst @@ -0,0 +1,47 @@ +.. include:: ../../Includes.txt + +================================================ +Deprecation: #91030 - Runtime-Activated Packages +================================================ + +See :issue:`91030` + +Description +=========== + +TYPO3's global configuration option :php:`$GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages']` has been deprecated. + +The option to register packages during runtime was introduced as +a work-around to dynamically modify the "extension list" when migrating from TYPO3 v4.5 to TYPO3 v6.x. + +However, using this feature has certain limitations: + +* Runtime-activated Extensions cannot add their DI configuration +* Runtime-activated Extensions make every (!) single TYPO3 request much slower just like back in 6.2.0 times + +The main usecase we know from people was to this functionality to enable e.g. extensions such as "devlog", "mask"/"mask_export" or "extensionbuilder" only on development systems. + + +Impact +====== + +Having a TYPO3 system using Runtime Activated Packages functionality +will trigger a PHP deprecation warning on every TYPO3 request. + + +Affected Installations +====================== + +TYPO3 installations having the affected option set in either :php:`typo3conf/LocalConfiguration.php` or :php:`typo3conf/AdditionalConfiguration.php`. + + +Migration +========= + +It is recommended - if this functionality is needed - to use TYPO3 +Console and Composer Mode (with require-dev) to achieve a similar behavior. + +If it is critical to have such features, consider modifying the extension in question to deal with TYPO3's Context +feature to enable / disable functionality for Production environment. + +.. index:: LocalConfiguration, FullyScanned, ext:core \ No newline at end of file diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php index e251614254c7383fd712b25e96e23d23b21bdd4a..5a847da9235af6775039f0082284303ebd9a2d11 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php @@ -417,4 +417,9 @@ return [ 'Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst', ], ], + '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXT\'][\'runtimeActivatedPackages\']' => [ + 'restFiles' => [ + 'Deprecation-91030-Runtime-ActivatedPackages.rst', + ], + ], ];