如何使用自动加载功能将类调用到我的扩展中。我正在使用typo3 7.6。从我理解的教程中,对于typo3 7.6,这可以在ext_emconf.php文件中完成。如何在ext_emconf.php中编写相同的文件? 我的类文件在Classes / class.x.php中。
答案 0 :(得分:4)
只要遵循代码约定,所有类都会自动在自动加载功能中注册: https://docs.typo3.org/typo3cms/ExtbaseFluidBook/a-CodingGuidelines/Index.html
class.x.php不是Extbase
中类的有效文件名。如果要创建ClassX,则文件名必须为:
/your_extension/Classes/ClassX.php
<?php
namespace YourName\YourExtension;
class ClassX {
}
请注意,扩展名称也会在UpperCamelCase中转换。对于供应商部分(示例中的YourName),您可以选择在PHP中有效的任何内容。
现在您可以使用
访问您的课程$test = new \YourName\YourExtension\ClassX();
您的扩展程序显然需要安装才能正常工作。
!!!请记住,Typo3仅在您安装/卸载扩展时生成自动加载缓存。如果将新文件添加到已安装的扩展中,则必须手动删除此缓存文件
/typo3temp/autoload/autoload_classmap.php
要配置与默认命名不匹配的类的自动加载,您可以在扩展程序中创建ext_autoload.php
。代码内部看起来像这样:
<?php
return array(
'Tx_SomeExtension_Someclass' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath('some_extension') . 'pi1/someclass.php',
);
如果您正在为Typo3 7.x开发,请记住,pibased已经过时,并且仅支持兼容性扩展,这会在性能方面带来很多缺点。我建议不再使用pibased扩展名。