Php symfony更新2.6至3.4后的奏鸣曲/细枝错误

Php symfony更新2.6至3.4后的奏鸣曲/细枝错误,php,symfony,interface,twig,sonata,Php,Symfony,Interface,Twig,Sonata,我正在更新一个从sf2.6php5.6到sf3.4php7.1的项目。。。它进展顺利,但现在我遇到了一个错误,我想不出如何解决它 错误输出: PHP消息:PHP致命错误:Uncaught Symfony\\Component\\Debug\\Exception\\fatalthrowable错误:类型错误:传递给Sonata\\FormatterBundle\\Formatter\\Pool::add必须实现接口Sonata\\FormatterBundle\\Formatter\\Format

我正在更新一个从sf2.6php5.6到sf3.4php7.1的项目。。。它进展顺利,但现在我遇到了一个错误,我想不出如何解决它

错误输出: PHP消息:PHP致命错误:Uncaught Symfony\\Component\\Debug\\Exception\\fatalthrowable错误:类型错误:传递给Sonata\\FormatterBundle\\Formatter\\Pool::add必须实现接口Sonata\\FormatterBundle\\Formatter\\FormatterInterface,给定布尔值,在/var/www/vendor/sonata project/formatter bundle/src/formatter/Pool.php第4924行的/var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php:43\n堆栈跟踪:\n0/var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php4924:sonata\\FormatterBundle\\formatter\\Pool->add'twig',true,NULL\n1/var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php3475:ContainerMklcxqq\\appDevDebugProjectContainer->getSonata\u Formatter\u PoolService\n2/var/www/var/cache/dev/ContainerMklcxqq/getAssetic\u AssetManagerService.php8:ContainerMklcxqq\\appDevDebugProjectContainer->\getwigservice\n3/var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php1349:需要“/var/www/var/ca…”\n4/v…”

如果我检查容器中提到的第4924行,我会发现:

$instance->add('twig', ${($_ = isset($this- >services['sonata.formatter.text.twigengine']) ? $this- 
>services['sonata.formatter.text.twigengine'] : $this- 
>getSonata_Formatter_Text_TwigengineService()) && false ?: '_'}, NULL);
当我使用bin/console debug:container sonata.formatter.text.twigengine检查实际服务时,我得到以下结果,我想这很好:

Information for Service "sonata.formatter.text.twigengine"
==========================================================

 ---------------- ------------------------------------------------
  Option           Value
 ---------------- ------------------------------------------------
  Service ID       sonata.formatter.text.twigengine
  Class            Sonata\FormatterBundle\Formatter\TwigFormatter
  Tags             sonata.text.formatter
  Public           no
  Synthetic        no
  Lazy             no
  Shared           yes
  Abstract         no
  Autowired        no
  Autoconfigured   no
 ---------------- ------------------------------------------------
最后,我检查了实际的TwigFormatter类,这导致了这篇文章:

final class TwigFormatter implements FormatterInterface
这个错误是怎么可能的?我应该修复这个错误还是需要任何包更新?我正在使用最新版本的sonata project/formatter捆绑包和最新版本的twig/twig


非常感谢您的帮助和解释。谢谢大家。

这个bug来自Symfony,请参见


您必须等待合并,或者如果您是玩家,请自己应用。

您必须检查Symfony以及sonata和twig的所有更改日志和升级通知。在更新之前,我修复了所有与代码库相关的弃用-但是,好吧,我会再看一看,这个错误似乎来自sonata和Symfony本身,见