Symfony-编写器更新-未找到依赖项注入配置类
我们的项目部分由三个包组成,其中两个包由一个web后端应用程序和一个由我们客户的前端单页应用程序使用的相关API组成,最后一个“CoreBundle”是公共资源所在的位置 这些捆绑包都有DependencyInjection(DI)捆绑包子目录,但根本没有配置类,因为它们都没有任何特定的配置。我们使用文档中建议的DI组件,理论上本项目中没有可能影响配置加载机制的特殊情况。Symfony-编写器更新-未找到依赖项注入配置类,symfony,dependency-injection,bundle,symfony3.x,symfony-3.4,Symfony,Dependency Injection,Bundle,Symfony3.x,Symfony 3.4,我们的项目部分由三个包组成,其中两个包由一个web后端应用程序和一个由我们客户的前端单页应用程序使用的相关API组成,最后一个“CoreBundle”是公共资源所在的位置 这些捆绑包都有DependencyInjection(DI)捆绑包子目录,但根本没有配置类,因为它们都没有任何特定的配置。我们使用文档中建议的DI组件,理论上本项目中没有可能影响配置加载机制的特殊情况。 到目前为止,它一直运行良好(Symfony 3.3.2) 为了将symfony/symfony从3.3.2更新到3.4,co
到目前为止,它一直运行良好(Symfony 3.3.2) 为了将symfony/symfony从3.3.2更新到3.4,composer安装后脚本Sensio\Bundle\DistributionBundle\composer\ScriptHandler::clearCache生成2个异常: 在Consistency.php第337行中:未找到类束\CoreBundle\DependencyInjection\Configuration\Configuration
在Consistency.php第285行中:未找到类束\CoreBundle\DependencyInjection\Configuration\Configuration 异常跟踪:
Exception trace:
Hoa\Core\Consistency\Consistency::autoload() at n/a:n/a
call_user_func() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/Debug/DebugClassLoader.php:146
Symfony\Component\Debug\DebugClassLoader->loadClass() at n/a:n/a
spl_autoload_call() at n/a:n/a
class_exists() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/Config/Resource/ClassExistenceResource.php:78
Symfony\Component\Config\Resource\ClassExistenceResource->isFresh() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:351
Symfony\Component\DependencyInjection\ContainerBuilder->getReflectionClass() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Extension/Extension.php:84
Symfony\Component\DependencyInjection\Extension\Extension->getConfiguration() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/MergeExtensionConfigurationPass.php:63
Symfony\Component\DependencyInjection\Compiler\MergeExtensionConfigurationPass->process() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/DependencyInjection/MergeExtensionConfigurationPass.php:39
Symfony\Component\HttpKernel\DependencyInjection\MergeExtensionConfigurationPass->process() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Compiler/Compiler.php:141
Symfony\Component\DependencyInjection\Compiler\Compiler->compile() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/ContainerBuilder.php:760
Symfony\Component\DependencyInjection\ContainerBuilder->compile() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:625
Symfony\Component\HttpKernel\Kernel->initializeContainer() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:137
Symfony\Component\HttpKernel\Kernel->boot() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:63
Symfony\Bundle\FrameworkBundle\Console\Application->doRun() at /var/www/back-portal/src/Component/MultiApp/MultiAppConsoleApplication.php:35
Component\MultiApp\MultiAppConsoleApplication->doRun() at /var/www/back-portal/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:129
Symfony\Component\Console\Application->run() at /var/www/back-portal/bin/console:31
添加一个配置类,其getConfigTreeBuilder()
方法返回一个新的(“空”)Treebuilder实例,使异常指向另一个包。我这样做是为了我们的三个bundle,现在例外情况是指出了Sensio自己的一个bundle
在Consistency.php第337行中:找不到Class Sensio\Bundle\DistributionBundle\DependencyInjection\Configuration\Configuration
以下是引发异常之前生成的一些编写器警告:
Dependency "symfony/polyfill-apcu" is also a root requirement, but is not explicitly whitelisted. Ignoring.
…
Package hoa/core is abandoned, you should avoid using it. Use hoa/consistency instead.
Package guzzle/guzzle is abandoned, you should avoid using it. Use guzzlehttp/guzzle instead.
执行rm-rf var/cache/*没有帮助。仅运行
bin/console缓存:clear
会引发相同的异常
现在,我们的bundles实现似乎与这个问题没有任何关系,我甚至不知道问题的根源是什么。也就是说,n/a:n/a处的行“spl\u autoload\u call()”看起来很奇怪…
可能是一些Symfony依赖项应该强制到某些版本?(顺便说一句,没有提供潜在原因的有用提示)
谢谢你的帮助。TL;DR:使用废弃的软件包hoa/core
我可能找到了解决这个问题的方法,因为我遇到了运行php bin/console
导致错误的相同问题
在Consistency.php第337行中:找不到Class Sensio\Bundle\DistributionBundle\DependencyInjection\Configuration\Configuration
在我将Symfony应用程序从2.8升级到最新的3.4版本之后
我不知道您的确切设置,但我也收到了关于废弃的hoa/core
软件包的警告,因此看到您的问题以及我们的设置之间的相似之处,我对此感到好奇,因为它指出
改用hoa/consistency。
而consistency.php
类中存在错误。啊哈
因此,我只是在我的composer.json
上花了很多时间,有一个过时的条目:
"hoa/regex": "~0.0"
这似乎需要废弃的hoa/core
包。
对我来说,只需将此更改为
"hoa/regex": "~1.0"
解决了这个问题。但由于我不知道您的确切composer.json
,我不知道您的捆绑包如何依赖于此包,因此更新到hoa/consistency
可能不是那么容易
希望这有帮助 查看包(子)依赖关系,我最终发现导致错误的是phpmetrics/phpmetrics
。只需升级版本“^1.10”→ “^2.3”
修复了我的问题。