'Class Doctrine\Common\Cache\ArrayCache does not exist' 安装 symfony 项目时

'Class Doctrine\Common\Cache\ArrayCache does not exist' when installing a symfony project

我正尝试按照以下步骤部署一个 symfony 项目:

./composer.phar update
php bin/console cache:clear

我也试过手动安装 doctrine 驱动 ArrayCache 运行:

./composer.phar require doctrine/cache

结果总是一样的,我最终遇到以下错误:

# ./composer.phar update --no-interaction
[...]
Script cache:clear returned with error code 255
!!
!!  In ContainerBuilder.php line 1089:
!!
!!    Class Doctrine\Common\Cache\ArrayCache does not exist
!!
!!
!!
Script @auto-scripts was called via post-update-cmd

我是 symfony 的新手,我不明白为什么 class 不见了。

我使用的是以下版本:

"symfony/framework-bundle": "5.1.*",
"doctrine/doctrine-bundle": "^2.2",

在此先感谢您的帮助。

对我来说,解决方案是降级到学说 2.7.4。

Google' 很明显,Doctrine 的文档没有按顺序排列。我将在我的待办事项列表中寻找另一个(第 3 方)缓存解决方案来替换 ArrayCache。我应该早点这样做,因为 ArrayCache 不适合生产。只希望 Doctrine 尽快更新其文档!

如果我找到替代方案,我会 post 放在这里。或者也许有人比我先一步,我希望如此!

我想你在安装 "doctrine/doctrine-bundle": "^2.2", 时安装了 doctrine/cache 2.x 版本。

来自github page

This library is deprecated and will no longer receive bug fixes from the Doctrine Project. Please use a different cache library, preferably PSR-6 or PSR-16 instead.

所以你有下一个选择:

  • ./composer.phar 要求 doctrine/cache:^1.11
  • 例如使用其他库作为缓存 symfony/cache

为了解决这个问题,我首先删除了composer.lock文件,之后,我使用以下命令安装了composer:composer install 并且我使用以下命令安装了 symfony 缓存依赖项:composer require symfony/cach

->ht​​tps://packagist.org/packages/symfony/cache