现在,我正在使用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()解析的类名。
希望以上内容对您有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句