TYPO3-Upgrade 4.5到6.2:名称空间

时间:2015-06-05 15:14:31

标签: namespaces typo3 typo3-6.2.x

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

但是我无法为t3lib_svbase找到合适的命名空间类。有什么建议吗?

我绝对不知道我需要用新的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',
);

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

2 个答案:

答案 0 :(得分:2)

可以在 typo3 \ sysext \ core \ Migrations \ Code \ LegacyClassesForIde.php t3lib_svbase中找到\TYPO3\CMS\Core\Service\AbstractService。 你不能直接实例化这个类,因为它是抽象的,但你可以和它的任何一个孩子一起工作。

至于这个区块:

//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方式,它不再需要这些行。

答案 1 :(得分:1)

要使用新的XLASS功能,您需要提供正确的自动加载功能,方法是坚持约定或创建ext_autoload.php文件。

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