TYPO3 6.2中的XClass

阿伦·钱德兰(Arun Chandran)

现在,我正在使用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',);

有人知道解决方案吗?

谢谢

阿图尔·奇乔斯(Artur Cichosz)

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

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()解析的类名。

希望以上内容对您有所帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章