TYPO3-从 4.5 升级到 6.2:名称空间
TYPO3-Upgrade 4.5 to 6.2: namespaces
我正在将旧的 TYPO3 更新到最新版本 6.2.12。当我这样做时,我将弃用的 classes 替换为适当的名称空间。例如。 t3lib_div
到 \TYPO3\CMS\Core\Utility\GeneralUtility
或 t3lib_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 方法,不再需要这些行。
我正在将旧的 TYPO3 更新到最新版本 6.2.12。当我这样做时,我将弃用的 classes 替换为适当的名称空间。例如。 t3lib_div
到 \TYPO3\CMS\Core\Utility\GeneralUtility
或 t3lib_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 方法,不再需要这些行。