我以前遇到过标题中的问题,我总是通过在emconf中添加psr-4自动加载器来解决这个问题,并简单地重新激活我的扩展。
现在我面临着同样的问题:
Could not analyse class: maybe not loaded or no autoloader?
但我已经像往常一样正确地设置了自动加载器。这种情况现在也发生在多个扩展中。。在删除安装工具und dump自动加载中的php缓存并重新激活我的扩展后,错误消失了一段时间,几个小时后又回来了。。因此,我认为这一定与临时文件有关,但我不知道它到底是什么。。
有人有解决方案吗?我在stackoverflow上看到了很多关于这个问题的话题,我过去也用过,但不幸的是,现在没有一个对我有用。
重要事实:这个错误现在发生在我的新服务器上。在我的旧服务器上(扩展中有相同的代码(,这种情况没有发生,而且运行良好。
提前谢谢。
编辑:Vendorname等设置正确,语法没有任何错误。正如我所说,这些扩展运行良好。
第二版:我刚刚发现了Typo3:的变更日志
https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.4/Breaking-78222-ExtensionAutoloadInformationIsNowInTypo3confautoload.html
但没有解决方案来解决无作曲家装置的影响。有人能为我提供一个吗?
当您使用composer安装并且使用未通过composer进行安装的扩展时,您需要在项目的根composer.json中添加自动加载信息,然后运行composer dump自动加载。(ext_emconf.php不能在作曲家模式下工作?(
{
...
"autoload": {
"psr-4": {
"Vendor\ExtensionNameA\": "public/typo3conf/ext/extension_name_a/Classes",
"Vendor\ExtensionNameB\": "public/typo3conf/ext/extension_name_b/Classes"
}
}
}
一种可能的解释是,奇怪的时间安排"奏效了,后来就不行了"。也许这与TYPO3后端的红色清除缓存按钮有关(清除所有缓存(。也许当你按下这个按钮,缓存文件被清除时,它就开始不工作了。然后,您需要重新安装扩展以使自动加载器"临时"工作,直到您再次点击清除所有缓存按钮。使用我上面提到的解决方案,它是永久有效的。
您在ext_tables.php
中留下了任何配置吗?
由于缓存的TCA配置预期在Configuration/TCA/[Override/]
中,因此ext_tables.php
中的任何代码都可能丢失。
如果你想为每次运行执行一些配置,你需要把它放在ext_localconf.php
中
感谢您的帮助,我现在自己找到了解决方案。
事实上,这并不是由任何自动加载器配置引起的,而是old version of fpdf
,这显然导致了两个扩展无法正确加载它们的类。抛出的异常只是误导。我有upgraded the version of fpdf
,现在它工作正常。我不清楚为什么一周前同样的代码有效,现在却失败了,但至少我找到了解决问题的方法。