【发布时间】:2021-10-07 18:39:26
【问题描述】:
我的 TYPO3 10.4(.21) 项目有问题。安装扩展时出现此错误,但之后一切正常。
Fatal error: Declaration of Symfony\Component\Config\Resource\SelfCheckingResourceInterface::isFresh(int $timestamp) must be compatible with Symfony\Component\Config\Resource\ResourceInterface::isFresh($timestamp) in /.../typo3_src-10.4.21/vendor/symfony/config/Resource/SelfCheckingResourceInterface.php on line 29
唯一不起作用的是要运行的 CLI 任务。
/usr/bin/php7.4-cli -f /.../typo3/sysext/core/bin/typo3 scheduler:run
这里出现以下错误:
Uncaught TYPO3 Exception Call to undefined method Symfony\Component\Console\Application::setCommandLoader()
thrown in file /.../typo3_src-10.4.21/typo3/sysext/core/Classes/Console/CommandApplication.php
in line 67
我已经构建了许多 TYPO3 项目,但不知道这里出了什么问题(最初没有构建那个项目)。
【问题讨论】:
-
您应该提供完整的堆栈跟踪,而不是对这些错误进行疯狂的猜测!
-
我的第一个想法是第一个错误与 symfony 中的故障有关,但我验证了 TYPO3 10.4 中使用的 5.3.0 版本中的代码并且无法发现任何故障。所以我假设你应该清除安装工具或cli中的所有缓存,也许故障就消失了。如果错误仍然存在,请检查 symfony 的版本。我不确定您的项目中的路径是否都正确(与
/.../相关)所以也许也检查一下,每个源包只存在一次(当然尊重符号链接)。 -
在我看来,PHP 在将命名空间解析为 symfony 类时存在问题。路径绝对正确。我已经多次清除安装工具中的所有缓存,并重新创建了自动加载信息,但 symfony 类没有包含在自动加载映射中。但我认为这很正常,因为另一个项目也没有包含它们,但 CLI cronjob 可以工作。
-
CLI 上的清除缓存也不起作用。同样的错误。还尝试了旧版本的 10.4(.10)。
标签: symfony typo3 command-line-interface