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

Posted

技术标签:

【中文标题】Symfony 5.1.3 清除缓存时的问题:尝试从命名空间加载类“MappingDriverChain”【英文标题】:Symfony 5.1.3 Issue while clearing the cache: Attempted to load class "MappingDriverChain" from namespace 【发布时间】:2020-11-22 23:00:36 【问题描述】:

我已将我的 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\Persistence\ManagerRegistry => Doctrine\Common\Persistence\ManagerRegistry

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

这是我目前的composer.json & composer.lock

【问题讨论】:

你找到什么了吗?我也遇到了同样的问题。 @conradfr 你能检查我的答案,看看解决方案是否适合你吗? 【参考方案1】:

我已经找到了解决这个问题的方法。在作曲家更新时,doctrine/persistence 更新为 V2.0.0doctrine/common 更新为 V3.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

现在该应用程序已在 symfony 5.1.3 中运行。 如果我因此次降级而遇到任何问题,将会更新。

【讨论】:

以上是关于Symfony 5.1.3 清除缓存时的问题:尝试从命名空间加载类“MappingDriverChain”的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 5 缓存:清除 php.CRITICAL:致命错误:允许的内存大小

Symfony 部署后清除缓存组件

Symfony2 会话和缓存:清除命令

有没有办法在 Symfony 上自动清除缓存?

清除缓存时的 Simplesaml Auth 错误

Symfony 缓存:清除错误毁了我的整个项目