Typo3 8.7:无法分析 class:可能未加载或没有自动加载器?一直来来去去

Typo3 8.7: Could not analyse class: maybe not loaded or no autoloader? Keeps coming and going

我过去遇到过标题中的这个问题,我总是通过在 emconf 中添加 psr-4 自动加载器并简单地重新激活我的扩展来解决这个问题。

现在我面临同样的问题:

Could not analyse class: maybe not loaded or no autoloader?

但我一如既往地正确设置了自动加载器。这种情况现在也发生在多个扩展中。在删除安装工具中的 php 缓存并转储自动加载并重新激活我的扩展后,错误消失了一段时间,几个小时后又回来了。因此我认为它一定与临时文件有关,但我无法弄清楚它到底是什么..

有人有解决办法吗?我在 Whosebug 上看到了很多关于这个问题的主题,我过去使用过它们,但不幸的是 none 现在正在为我工​​作。

重要事实:这个错误现在正在我的新服务器上发生。在我的旧服务器上(在扩展中使用相同的代码)这没有发生并且它们工作正常。

提前致谢。

编辑:供应商名称等设置正确,语法中没有任何错误。正如我所说,扩展工作正常。

Edit2:我刚刚找到了 Typo3 的更新日志:

https://docs.typo3.org/typo3cms/extensions/core/Changelog/8.4/Breaking-78222-ExtensionAutoloadInformationIsNowInTypo3confautoload.html

但是对于 none 作曲家安装的影响没有解决方案。有人可以给我一份吗?[=​​13=]

当您使用 composer installation 并且您使用的扩展不是通过 composer 安装时,您需要在项目的根目录 composer.json 添加自动加载信息,然后 运行 composer转储自动加载。 (ext_emconf.php 在作曲家模式下不工作?)

{
    ...
    "autoload": {
        "psr-4": {
            "Vendor\ExtensionNameA\": "public/typo3conf/ext/extension_name_a/Classes",
            "Vendor\ExtensionNameB\": "public/typo3conf/ext/extension_name_b/Classes"
        }
    }
}

对奇怪的计时事件的可能解释 "works and later not"。可能与TYPO3后端的红色清除缓存按钮(清除所有缓存)有关。当您点击此按钮并清除缓存文件时,它可能开始不起作用。然后你需要重新安装扩展以使自动加载器 "temporarly" 工作,直到你再次点击清除所有缓存按钮。使用我上面提到的解决方案,它可以永久工作。

您是否在 ext_tables.php 中留下了任何配置?

由于缓存的 TCA 配置预计在 Configuration/TCA/[Override/] 中,ext_tables.php 中的任何代码都可能丢失。

如果你想为每个 运行 执行一些配置你需要把它放在 ext_localconf.php

感谢大家的帮助,我现在自己找到了解决方案。

实际上它并不是由任何自动加载器配置引起的,而是 old version of fpdf 显然导致两个扩展无法正确加载它们的 类。抛出的异常只是误导。我有 upgraded the version of fpdf,现在它可以正常工作了。我不清楚为什么同样的代码在一周前有效,但现在却失败了,但至少我找到了解决问题的方法。