[BUGFIX] Extbase registers unneeded code for plugins 48/27248/4
authorBenjamin Mack <benni@typo3.org>
Sat, 1 Feb 2014 21:51:01 +0000 (22:51 +0100)
committerFelix Oertel <mehl@foertel.com>
Sun, 2 Feb 2014 09:27:18 +0000 (10:27 +0100)
Every time when an extension is registering an extbase
plugin (in ext_localconf.php), the call triggers some
additional TypoScript code, which is basically empty
and does some superfluous code.

The attached patch removes the code inside the
registration process in order to remove the memory
footprint and have a small impact on performance
when bootstrapping TYPO3.

On a frontend script (eID), this makes approx.
2% of the bootstrap process until TSFE kicks in.

Releases: 6.2
Resolves: #55569
Change-Id: I39b810d06be57f436a68afaa717d5ec214b8797b
Reviewed-on: https://review.typo3.org/27248
Reviewed-by: Felix Oertel
Tested-by: Felix Oertel
typo3/sysext/extbase/Classes/Utility/ExtensionUtility.php
typo3/sysext/extbase/Tests/Unit/Utility/ExtensionUtilityTest.php

index 242556f..eaa4a89 100644 (file)
@@ -71,7 +71,8 @@ class ExtensionUtility {
                        $extensionName = substr($extensionName, $delimiterPosition + 1);
                }
                $extensionName = str_replace(' ', '', ucwords(str_replace('_', ' ', $extensionName)));
-               $pluginSignature = strtolower($extensionName) . '_' . strtolower($pluginName);
+
+               $pluginSignature = strtolower($extensionName . '_' . $pluginName);
                if (!is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName])) {
                        $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName] = array();
                }
@@ -81,31 +82,7 @@ class ExtensionUtility {
                                $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['extbase']['extensions'][$extensionName]['plugins'][$pluginName]['controllers'][$controllerName]['nonCacheableActions'] = \TYPO3\CMS\Core\Utility\GeneralUtility::trimExplode(',', $nonCacheableControllerActions[$controllerName]);
                        }
                }
-               $pluginTemplate = 'plugin.tx_' . strtolower($extensionName) . ' {
-       settings {
-       }
-       persistence {
-               storagePid =
-               classes {
-               }
-       }
-       view {
-               templateRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-               layoutRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-               partialRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-                # with defaultPid you can specify the default page uid of this plugin. If you set this to the string "auto" the target page will be determined automatically. Defaults to an empty string that expects the target page to be the current page.
-               defaultPid =
-       }
-}';
-               \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTypoScript($extensionName, 'setup', '
-# Setting ' . $extensionName . ' plugin TypoScript
-' . $pluginTemplate);
+
                switch ($pluginType) {
                        case self::PLUGIN_TYPE_PLUGIN:
                                $pluginContent = trim('
index fc2c750..bb6e9e3 100644 (file)
@@ -101,29 +101,6 @@ class ExtensionUtilityTest extends \TYPO3\CMS\Core\Tests\UnitTestCase {
                $staticTypoScript = $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup.']['43'];
                $defaultTypoScript = $GLOBALS['TYPO3_CONF_VARS']['FE']['defaultTypoScript_setup'];
                $this->assertContains('tt_content.list.20.myextension_pi1 = USER', $staticTypoScript);
-               $this->assertContains('
-plugin.tx_myextension {
-       settings {
-       }
-       persistence {
-               storagePid =
-               classes {
-               }
-       }
-       view {
-               templateRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-               layoutRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-               partialRootPaths {
-                       #example: fooKey = EXT:bar/foo
-               }
-                # with defaultPid you can specify the default page uid of this plugin. If you set this to the string "auto" the target page will be determined automatically. Defaults to an empty string that expects the target page to be the current page.
-               defaultPid =
-       }
-}', $defaultTypoScript);
        }
 
        /**