Ошибка sonata / twig после обновления Symfony с 2.6 до 3.4

Я обновляю проект с 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.

помощь и объяснение очень приветствуются. Спасибо ребята.

Вам нужно будет проверить все журналы изменений и уведомления об обновлении Symfony, а также сонаты и веточки.

Veve 03.10.2018 10:23

перед обновлением я исправил все устаревшие, связанные с кодовой базой, но что ж, тогда я еще раз взгляну

netzding 03.10.2018 10:28

Эта ошибка, похоже, исходит от самих Sonata и Symfony, см. github.com/sonata-project/SonataAdminBundle/issues/5238, затем github.com/symfony/symfony/issues/28658

Veve 03.10.2018 10:35
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
209
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

Вам придется подождать, пока это исправление будет объединен, или, если вы игрок, примените его самостоятельно.

Другие вопросы по теме