Php symfony更新2.6至3.4后的奏鸣曲/细枝错误
我正在更新一个从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行,我会发现: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
$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本身,见