我遇到了课程不可用的问题。
我在扩展名下得到了下一个composer.json
文件:
{
"autoload": {
"psr-4": {
"Vendor\\MySitepackage\\": "Classes/"
}
}
}
现在我得到了一个EXT:my_sitepackage/Classes/Rendering/VideoRenderer.php
类,其名称空间和名称类是正确的。
在我的ext_localconf.php
下,我这样做:
<?php
defined('TYPO3_MODE') or die();
(function () {
........
/** @var \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry
$rendererRegistry */
$rendererRegistry = \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance();
$rendererRegistry->registerRendererClass(\Vendor\MySitepackage\Rendering\VideoRenderer::class);
........
})();
但是,当我刷新缓存时,出现下一个错误:
[ InvalidArgumentException ]
The class "Vendor\MySitepackage\Rendering\VideoRenderer" you are trying to register is not available
我检查了所有名称类别,一切似乎都正确。
我应该在扩展程序中创建一个composer dump-autoload
来加载info类吗?即使我这样做,它也会显示Generated autoload files containing 0 classes
。
我有点困惑为什么显示此错误。
答案 0 :(得分:1)
如果未通过composer加载此扩展名,则其composer.json
将被忽略。您必须将sitepackage扩展的psr-4信息放入根composer.json。不要忘记采用类似public/typo3conf/ext/my_sitepackage/Classes