composer-php - 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 完成?
解决方案
推荐阅读
- json - Task.json dataSourceBindings 选择 Azure 资源组以显示其位置
- swift - 当图表上没有数据图时图表视口高度增加
- python - 用于在 Windows 中自动安装软件的 Python 脚本
- flutter - 是否有任何用于颤振的字母图标(图标显示 a、b、c、d....)?
- jquery - 如何将两个 mvc 下拉列表与 jQuery 结合起来?
- r - 左连接的 R 代码,使用匹配的日期和不匹配的其他日期
- c++ - C++ 构建顺序?
- javascript - 通过 npm / index.html 将 tex2max.js 导入 Angular 项目
- elasticsearch - 如何过滤 ElasticSearch 中的嵌套聚合?
- c# - 自定义 ActionFilterAttribute(authorization) 在未经授权的 actioncontext 响应后不会停止路由执行