Symfony 5.1.3 清除缓存时出现问题:尝试从命名空间加载类“MappingDriverChain”

Nan*_*r V 4 php symfony doctrine-orm symfony5

我已将 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"?    
Run Code Online (Sandbox Code Playgroud)

我检查了缓存文件,symfony 确实在缓存上请求这个类。从其他一些 SO 帖子中,我得到的印象是学说结构已经改变。我在所有必须进行此更改的存储库类上也遇到了类似的问题

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

我看过一个类似的 SO 帖子关于同一问题,说更新到最新版本将解决这个问题。但就我而言,这并不成功。
是 symfony 版本的问题还是其他一些配置问题。
而且我还创建了两个数据库连接,都是 MySQL。不确定这是否与问题有任何联系。

这是我目前的composer.jsoncomposer.lock

Nan*_*r V 10

我找到了解决问题的方法。在作曲家更新时doctrine/persistence更新到V2.0.0 &doctrine/commonV3.0.2。而且我认为这两个版本还与symfony/orm V2.0不兼容,所以我不得不降级教义版本以使应用程序再次运行。

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
Run Code Online (Sandbox Code Playgroud)

现在该应用程序在 symfony 5.1.3 中并且可以正常工作。
如果我因为这次降级而遇到任何问题,我会更新。