php - Doctrine\Common\Persistence\Mapping\Driver 丢失
问题描述
抱歉,今天我在 Symfony 上发生了一些奇怪的事情。我正在和一个朋友开发一个 web 应用程序,并决定今天早上运行一个作曲家更新。之前一切正常,但是一旦作曲家更新完成,我得到一个缓存:清除错误。这是关于如何Doctrine\Common\Persistence\ManagerRegistry;
在几个存储库中找不到的,所以我尝试使用可以解决Doctrine\Persistence\ManagerRegistry
所有问题的 PhpStorm 自动完成。问题是,一旦我在所有存储库上更正了该错误,我在尝试运行时收到以下错误php bin/console
:
Symfony\Component\ErrorHandler\Error\ClassNotFoundError^ {#4524
#message: """
Attempted to load class "MappingDriverChain" from namespace "Doctrine\Common\Persistence\Mapping\Driver".\n
Did you forget a "use" statement for "Doctrine\Persistence\Mapping\Driver\MappingDriverChain"?
"""
#code: 0
#file: "./var/cache/dev/ContainerO7VJLRg/App_KernelDevDebugContainer.php"
#line: 1223
trace: {
./var/cache/dev/ContainerO7VJLRg/App_KernelDevDebugContainer.php:1223 {
ContainerO7VJLRg\App_KernelDevDebugContainer->getDoctrine_Orm_DefaultEntityManagerService($lazyLoad = true)^
›
› $b = new \Doctrine\Common\Persistence\Mapping\Driver\MappingDriverChain();
›
}
./var/cache/dev/ContainerO7VJLRg/App_KernelDevDebugContainer.php:6427 { …}
./var/cache/dev/ContainerO7VJLRg/App_KernelDevDebugContainer.php:6472 { …}
./var/cache/dev/ContainerO7VJLRg/App_KernelDevDebugContainer.php:899 { …}
./vendor/symfony/http-kernel/CacheWarmer/CacheWarmerAggregate.php:90 { …}
./vendor/symfony/http-kernel/Kernel.php:572 { …}
./vendor/symfony/http-kernel/Kernel.php:131 { …}
./vendor/symfony/framework-bundle/Console/Application.php:168 { …}
./vendor/symfony/framework-bundle/Console/Application.php:74 { …}
./vendor/symfony/console/Application.php:140 { …}
./bin/console:42 { …}
}
}
我与没有同样问题的同事分享了它。他运行作曲家更新,并没有任何问题。所以我决定将我的更改推送到不同的存储库,然后克隆项目并重试。和以前一样的错误。
在那之后,我决定从头开始创建一个新的 symfony 网站并将文件移过来(在拉取他的更改之后),(configs/src/templates/public 等)它就像一个魅力,bin/console
完美运行,symfony server:start
为页面服务很好所以我们决定,很酷,让我们把它移到我们的共享存储库中,他将尝试克隆它并运行 composer install。
一旦他这样做,他就会得到与我完全相同的错误。
我尝试将项目克隆到另一个文件夹,并且发生了完全相同的情况。
顺便说一句,尽管缓存清除不起作用,我们在每一步都消除了缓存文件夹。
我认为这与symfony/orm-pack
更新到 2.0.0 版本有关,但我们降级了它,它没有解决任何问题。
Symfony 版本(我们俩)是 5.1 我们正在使用的附加库是:不确定这是否有帮助data-dog/audit-bundle
。ramsey/uuid-doctrine
解决方案
很抱歉没有早点回复,但我们发现了错误。
它确实与教义的版本有关。在 git 上,我们在更新 composer json 时传递了旧的 composer.lock 文件,因此为什么在我们克隆它后错误又回来了。
基本上,尽管我们指定 orm-pack 的 2.0.0 版本,但是 composer.lock 总是将其限制为 1.8,并且两个版本之间的命名空间和教义的文件夹结构都发生了变化。
一旦我们删除了 composer.lock 并更新了 composer 一切正常。
推荐阅读
- javascript - 未捕获的错误:对象作为 React 子项无效(找到:带有键 {todo} 的对象)。如果您打算渲染一组孩子,请使用数组
- postgresql - 为什么“SELECT MOD(_number, 10) AS _mod;” 产生错误“查询没有结果数据的目的地”?
- python - 如何删除包含非浮点/整数变量的数据框中的行
- r - 仅在特定年份使用 r 中的叶子时间库显示点
- r - 是否有一个很好的 R 函数来分离两个数据帧之间的唯一列值,保持行?
- java - 读取十进制数并打印其等效的二进制数
- c - 设置共享库的堆栈大小
- vue.js - vuejs webpack npm 运行观察
- string - 用于压缩字符串的打字稿函数
- c++ - 显示值为:C++