[英]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.