Typo3 当通过ext_localconf.php注册类时,自动加载不起作用
我遇到了一个班级不可用的问题。 我在扩展名下得到了下一个Typo3 当通过ext_localconf.php注册类时,自动加载不起作用,typo3,typo3-9.x,Typo3,Typo3 9.x,我遇到了一个班级不可用的问题。 我在扩展名下得到了下一个composer.json文件: { "autoload": { "psr-4": { "Vendor\\MySitepackage\\": "Classes/" } } } 现在我得到了一个EXT:my_sitepackage/Classes/Rendering/VideoRenderer.php类,它的名称空间和名称类是正确的 在我的ext\u localconf
composer.json
文件:
{
"autoload": {
"psr-4": {
"Vendor\\MySitepackage\\": "Classes/"
}
}
}
现在我得到了一个EXT:my_sitepackage/Classes/Rendering/VideoRenderer.php
类,它的名称空间和名称类是正确的
在我的ext\u 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);
........
})();
我检查了所有的名称类,似乎一切都正常
我是否应该在扩展中进行composer dump autoload
,以加载info类?即使我这样做,它也会显示生成的自动加载文件包含0个类
我感到有点困惑为什么会显示此错误。如果此扩展未通过composer加载,则其
composer.json
将被忽略。您必须将sitepackage扩展的psr-4信息放在root composer.json中。不要忘记采用类似于public/typo3conf/ext/my_sitepackage/Classes
的路径,非常感谢您的解释,Georg。我认为已经考虑了自己的扩展composer.json。我曾尝试将其移动到root composer.json,但问题是我忘记调整路径。现在工作正常!谢谢我也有同样的问题。。在根目录中更改composer.json并不能解决此问题。。
[ InvalidArgumentException ]
The class "Vendor\MySitepackage\Rendering\VideoRenderer" you are trying to register is not available