【问题标题】:'Class Doctrine\Common\Cache\ArrayCache does not exist' when installing a symfony project安装 symfony 项目时“类 Doctrine\Common\Cache\ArrayCache 不存在”
【发布时间】:2021-06-28 15:38:32
【问题描述】:

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

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

我也尝试过手动安装运行学说驱动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 的新手,我不明白为什么缺少这个类。

我正在使用以下版本:

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

提前感谢您的帮助。

【问题讨论】:

  • 改用./composer.phar install
  • 我也有同样的问题。我单独使用教义,这不是 Symfony 问题。似乎他们只是放弃了缓存类。好的,很好,但是为什么他们的网站上没有任何文档/示例?如果您查看说明书,所有示例仍然可以使用相同的现已废弃的缓存包!呜呜呜……
  • 您尝试过什么解决问题的方法?正如您在github.com/doctrine/cache/issues/354 上看到的,ArrayCache 不再是doctrine/cache v2 的一部分,因此您需要检查应用程序的哪个部分使用它。很可能,您使用的任何其他软件包都依赖于它
  • @NicoHaase,正如下面 'mous' 提到的,我们选择了降级原则版本,我们将尽快重构代码以使用另一个缓存解决方案。

标签: php symfony deployment doctrine-orm doctrine


【解决方案1】:

我认为你在安装"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 需要学说/缓存:^1.11
  • 使用其他库进行缓存,例如symfony/cache

【讨论】:

    【解决方案2】:

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

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

    如果我找到替代方案,我会在此处发布。或者也许其他人比我更胜一筹,我希望如此!

    【讨论】:

    • 感谢您的回复,我们选择了相同的解决方案,目前我们已在 composer.json 中将版本修复为学说 2.7.4。我们正在等待代码重构允许我们使用另一个缓存驱动程序。显然,Symfony 和 Doctrine 都缺乏关于这种弃用的文档。等待并查看有关这一点的一些更新。
    【解决方案3】:

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

    ->https://packagist.org/packages/symfony/cache

    【讨论】:

    • 删除 composer.lock 从来都不是一个好主意。为什么不安装任何包而不删除所有其他已解决的依赖项?
    猜你喜欢
    • 2021-10-09
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 2019-01-30
    • 2022-06-30
    • 2015-08-03
    • 2016-03-25
    • 1970-01-01
    相关资源
    最近更新 更多