Symfony 5.1.3 Проблема при очистке кеша: Попытка загрузить класс «MappingDriverChain» из пространства имен - PullRequest
1 голос
/ 02 августа 2020

Я обновил свое приложение symfony до 5.1.3 . Но с тех пор существует исключение отсутствия класса при очистке кеша.

In App_KernelDevDebugContainer.php line 1050:
                                                                               
  Attempted to load class "MappingDriverChain" from namespace "Doctrine\Common\Persistence\Mapping\Driver".                                               
  Did you forget a "use" statement for "Doctrine\Persistence\Mapping\Driver\MappingDriverChain"?    

Я проверил файл кеша, и symfony действительно запрашивает этот класс в кеше. Из другого сообщения SO у меня сложилось впечатление, что структура doctrine изменилась. У меня также была аналогичная проблема во всех классах репозитория, где мне пришлось внести это изменение

Doctrine \ Persistence \ ManagerRegistry => Doctrine \ Common \ Persistence \ ManagerRegistry

I видели аналогичное сообщение SO по той же проблеме, в котором говорится, что обновление до последней версии решит проблему. Но в моем случае это не удалось. Это проблема с версией symfony или другая проблема с конфигурацией. А также я создал два подключения к БД, оба MySQL. Не уверен, что это связано с проблемой.

Это мой текущий composer. json & composer .lock

1 Ответ

4 голосов
/ 03 августа 2020

Я нашел решение проблемы. При обновлении composer doctrine/persistence обновляется до V2.0.0 и doctrine/common до V3.0.2 . И я думаю, что эти 2 версии еще не совместимы с symfony/orm V2.0 Поэтому мне пришлось понизить версию doctrine, чтобы приложение снова заработало.

composer require doctrine/common:2.13.3 --update-with-dependencies

  - Downgrading doctrine/persistence (2.0.0 => 1.3.7): Loading from cache
  - Downgrading doctrine/common (3.0.2 => 2.13.3): Loading from cache

Теперь приложение находится в symfony 5.1.3 и работает. Будет обновлено, если у меня возникнут какие-либо проблемы из-за этого перехода на более раннюю версию.

...