自动加载功能错字3 7.6

时间:2016-07-28 06:45:41

标签: typo3 autoload typo3-7.6.x

如何使用自动加载功能将类调用到我的扩展中。我正在使用typo3 7.6。从我理解的教程中,对于typo3 7.6,这可以在ext_emconf.php文件中完成。如何在ext_emconf.php中编写相同的文件?  我的类文件在Classes / class.x.php中。

1 个答案:

答案 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扩展名。