Я обновляю проект с sf2.6 (php5.6) до sf3.4 (php7.1) ... все идет хорошо, но теперь я застрял с ошибкой, я не могу понять, как ее исправить
вывод ошибки:
PHP message: PHP Fatal error: Uncaught Symfony\\Component\\Debug\\Exception\\FatalThrowableError: Type error: Argument 2 passed to Sonata\\FormatterBundle\\Formatter\\Pool::add() must implement interface Sonata\\FormatterBundle\\Formatter\\FormatterInterface, boolean given, called in /var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php on line 4924 in /var/www/vendor/sonata-project/formatter-bundle/src/Formatter/Pool.php:43\nStack trace:\n#0 /var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php(4924): Sonata\\FormatterBundle\\Formatter\\Pool->add('twig', true, NULL)\n#1 /var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php(3475): ContainerMklcxqq\\appDevDebugProjectContainer->getSonata_Formatter_PoolService()\n#2 /var/www/var/cache/dev/ContainerMklcxqq/getAssetic_AssetManagerService.php(8): ContainerMklcxqq\\appDevDebugProjectContainer->getTwigService()\n#3 /var/www/var/cache/dev/ContainerMklcxqq/appDevDebugProjectContainer.php(1349): require('/var/www/var/ca...')\n#4 /v...\n'
если я проверю указанную строку (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-bundle, а также новейшую версию twig / twig.
помощь и объяснение очень приветствуются. Спасибо ребята.
перед обновлением я исправил все устаревшие, связанные с кодовой базой, но что ж, тогда я еще раз взгляну
Эта ошибка, похоже, исходит от самих Sonata и Symfony, см. github.com/sonata-project/SonataAdminBundle/issues/5238, затем github.com/symfony/symfony/issues/28658






Эта ошибка исходит от Symfony, см. ОШИБКА: FormatterBundle \ Formatter \ Pool :: add () должен реализовывать интерфейс, затем [DI] Ошибка сброшенного контейнера для встроенных служб.
Вам придется подождать, пока это исправление будет объединен, или, если вы игрок, примените его самостоятельно.
Вам нужно будет проверить все журналы изменений и уведомления об обновлении Symfony, а также сонаты и веточки.