TYPO3-从 4.5 升级到 6.2:名称空间

TYPO3-Upgrade 4.5 to 6.2: namespaces

我正在将旧的 TYPO3 更新到最新版本 6.2.12。当我这样做时,我将弃用的 classes 替换为适当的名称空间。例如。 t3lib_div\TYPO3\CMS\Core\Utility\GeneralUtilityt3lib_extmgm\TYPO3\CMS\Core\Utility\ExtensionManagementUtility

但我找不到 t3lib_svbase 的正确命名空间 class。有什么建议吗?

.

而且我完全不知道我需要用新的 xclassed include 做什么。

//old XCLASS
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/foo_myfancyextension/sv1/class.tx_foomyfancyextension_sv1.php'])   {
    include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/foo_myfancyextension/sv1/class.tx_foomyfancyextension_sv1.php']);
}

它应该看起来像这样:

//new XCLASS
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['TYPO3\CMS\Frontend\ContentObject\FluidTemplateContentObject'] = array(
    'className' => 'Enet\FxLibrary\Xclass\FluidTemplateContentObject',
);

但是我的扩展和 class 本身的路径在哪里?

要使用新的 XLASS 功能,您需要通过遵守约定或创建 ext_autoload.php 文件来提供适当的自动加载。

http://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Autoloading/Index.html http://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Xclasses/Index.html

可以在 typo3\sysext\core\Migrations\Code\LegacyClassesForIde 中找到。php t3lib_svbase 已变为 \TYPO3\CMS\Core\Service\AbstractService。 您不能直接实例化此 class,因为它是抽象的,但您可以使用它的任何子项。

关于这个街区:

//old XCLASS
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/foo_myfancyextension/sv1/class.tx_foomyfancyextension_sv1.php'])   {
    include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/foo_myfancyextension/sv1/class.tx_foomyfancyextension_sv1.php']);
}

我假设这是一部分,位于文件底部。您可以安全地删除它,因为正如@pgampe 所建议的那样,有一种新的 XCLASSing 方法,不再需要这些行。