首页 > 解决方案 > Laminas-Cache 2.13 PHP8 升级

问题描述

我在将服务器从 PHP7.3 升级到 PHP8.0 时遇到了一些问题,所以我想我会列出我发现的内容并询问其他人是否有更好的解决方案。

我遇到的问题:我有一个 PHP Laminas 应用程序,它使用 composer.json 中的 laminas/laminas-cache 包;问题是它有几个与 PHP8 不兼容的依赖项(另外,一些依赖项被放弃了),所以我收到如下错误:

- laminas/laminas-cache-storage-adapter-apc[1.0.0, ..., 1.0.1] require php ^5.6 || ^7.0 -> your php version (8.0.9) does not satisfy that requirement.
- laminas/laminas-cache 2.13.0 requires laminas/laminas-cache-storage-adapter-apc ^1.0 -> satisfiable by laminas/laminas-cache-storage-adapter-apc[1.0.0, 1.0.1].
- Root composer.json requires laminas/laminas-cache ^2.13 -> satisfiable by laminas/laminas-cache[2.13.0].

看起来 laminas/laminas-cache 3.0 将解决一堆依赖问题,但它仍处于 Dev 状态,因此对于我的生产环境来说它被认为太不稳定了。这意味着我必须使用 laminas/laminas-cache 2.13。

如何修复它:我花了一段时间才找到这个文档,但据我所知,您应该通过将它们放在替换部分中来选择要忽略的依赖项:

https://github.com/laminas/laminas-cache/issues/88

这是要“替换”的标准包列表:

"replace": {
    "laminas/laminas-cache-storage-adapter-apc": "*",
    "laminas/laminas-cache-storage-adapter-dba": "*",
    "laminas/laminas-cache-storage-adapter-mongodb": "*",
    "laminas/laminas-cache-storage-adapter-wincache": "*",
    "laminas/laminas-cache-storage-adapter-xcache": "*",
    "laminas/laminas-cache-storage-adapter-zend-server": "*"
},

一旦我将该部分复制/粘贴到composer.json中,它就可以让我成功运行composer update而不会出现问题,但我不喜欢将一堆包替换为“*”版本通配符。

所以......我的问题是:有没有更好的方法来做到这一点,或者我是否偶然发现了最好的解决方案,直到 laminas/laminas-cache 3.0 完成?

标签: composer-phpupgradephp-8laminas

解决方案


推荐阅读