Symfony 2.8 -> 3.4 错误 PhpDumper "Cannot dump definitions which have method calls."



我正在将应用程序从Symfony 2.8更新到3.4,并收到以下错误:

Cannot dump definitions which have method calls.

这里是详细的版本:

[SymfonyComponentDependencyInjectionExceptionRuntimeException]  
Cannot dump definitions which have method calls.                    

Exception trace:
SymfonyComponentDependencyInjectionDumperPhpDumper->dumpValue() at /project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:642
SymfonyComponentDependencyInjectionDumperPhpDumper->addServiceMethodCalls() at /project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:521
SymfonyComponentDependencyInjectionDumperPhpDumper->addServiceInlinedDefinitions() at /project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:834
SymfonyComponentDependencyInjectionDumperPhpDumper->addService() at /project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:876
SymfonyComponentDependencyInjectionDumperPhpDumper->addServices() at /project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:193
SymfonyComponentDependencyInjectionDumperPhpDumper->dump() at /project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:859
SymfonyComponentHttpKernelKernel->dumpContainer() at /project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:663
SymfonyComponentHttpKernelKernel->initializeContainer() at /project/vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php:135
SymfonyComponentHttpKernelKernel->boot() at /project/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Console/Application.php:64
SymfonyBundleFrameworkBundleConsoleApplication->doRun() at /project/vendor/symfony/symfony/src/Symfony/Component/Console/Application.php:148
SymfonyComponentConsoleApplication->run() at /project/bin/console:27

如果我在抛出异常之前转储$valuePhpDumper.php:1761我会得到:

/project/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php:1761:
class SymfonyComponentDependencyInjectionDefinition#278 (24) {
private $class =>
string(32) "DoctrineCommonCacheArrayCache"
private $file =>
NULL
private $factory =>
NULL
private $shared =>
bool(true)
private $deprecated =>
bool(false)
private $deprecationTemplate =>
NULL
private $properties =>
array(0) {
}
private $calls =>
array(1) {
[0] =>
array(2) {
[0] =>
string(12) "setNamespace"
[1] =>
array(1) {
...
}
}
}
private $instanceof =>
array(0) {
}
private $autoconfigured =>
bool(false)
private $configurator =>
NULL
private $tags =>
array(0) {
}
private $public =>
bool(false)
private $private =>
bool(false)
private $synthetic =>
bool(false)
private $abstract =>
bool(false)
private $lazy =>
bool(false)
private $decoratedService =>
NULL
private $autowired =>
bool(false)
private $autowiringTypes =>
array(0) {
}
private $changes =>
array(2) {
'class' =>
bool(true)
'public' =>
bool(true)
}
private $bindings =>
array(0) {
}
private $errors =>
array(0) {
}
protected $arguments =>
array(0) {
}
}
In PhpDumper.php line 1762:
Cannot dump definitions which have method calls.  

所以PhpDumper.php不能倾倒SymfonyComponentDependencyInjectionDefinition

我目前的解决方法是修改PhpDumper.php以不引发该异常。

感谢您的任何建议:)

更新

这可能与doctrine_phpcr有关。我创建了一个测试symfony项目,可以在其中重现:

https://github.com/wuestkamp/my_project_name

我创建了一个问题。

这似乎是SF3.4.15的一个错误,降级到3.4.14没有错误。

相关内容

最新更新