繁体   English   中英

TYPO3 6.2中的XClass

[英]XClass in TYPO3 6.2

现在,我正在使用TYPO3 6.2beta5版本,并且在该网站中,我需要包括一个扩展名sr_feuser_register的XClass。 它是一个“ PI_Base”扩展名,我尝试了以下方法来包含XClass,但是不再起作用了。

-> localconf.php

$ GLOBALS ['TYPO3_CONF_VARS'] ['SYS'] ['Objects'] ['tx_srfeuserregister_display'] = array('className'=>'ux_tx_srfeuserregister_display');

-> ext_autoload.php

$ extensionPath = \\ TYPO3 \\ CMS \\ Core \\ Utility \\ ExtensionManagementUtility :: extPath('extname');

返回数组('ux_tx_srfeuserregister_display'=> $ extensionPath.'class.ux_tx_srfeuserregister_display.php',);

有人知道解决方案吗?

谢谢

您的代码对于非命名空间类是正确的。 您的代码无法正常工作的原因如下:

1) xclass尚未自动加载 -因为您尚未清除“所有缓存”。 自动加载器会缓存所有路径! 如果所加载的ext_autoload.php文件(所有扩展名)中的任何一个错误,则额外的自动加载将部分中断。 您不会在前端注意到这一点,因为不会引发异常和PHP错误。

2)在不使用GeneralUtility :: makeInstance()的情况下直接实例化原始类的实例,而直接使用(新的tx_srfeuserregister_display)

3)实际上,该类已扩展,但您要重载的方法以静态方式使用beeing(class :: method())

4)有时,对象数组中的类键可能与您期望的键不同(此处为$ GLOBALS ['TYPO3_CONF_VARS'] ['SYS'] ['Objects] [' tx_srfeuserregister_display '])。 当我拼命寻找XCLASS不起作用的原因时,我尝试记录由GeneralUtility :: getImplementationForClass()解析的类名。

希望以上的一些帮助。

这是由于缓存而发生的。 我的代码正确,并且我清除了所有typo3temp缓存,并且现在可以正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM