升级PHP8.2后无法解析Laminas缓存服务的解决方法
PHP8.2升级后Laminas MVC缓存服务找不到错误
Fatal error: Uncaught Laminas\ServiceManager\Exception\ServiceNotFoundException: Unable to resolve service "Laminas\Cache\Storage\Adapter\Memory" to a factory; are you certain you provided it during configuration? in /var/www/vhosts/.../portal/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:586
原本在PHP7.4环境运行正常的Laminas MVC应用,升级至PHP8.2并通过Composer更新依赖后触发上述错误。查阅Laminas Cache v4文档未找到明确的配置初始化指引,经排查确定问题由版本冲突与配置缺失共同导致,最终参考Laminas Cache v3文档完成修复。
修复步骤
- 更新
Module.php的模块注册
在应用的Module.php中,将以下模块添加到模块列表:
Laminas\CacheLaminas\Cache\Storage\Adapter\MemoryLaminas\Cache\Storage\Adapter\Filesystem
- 配置默认缓存实例
在应用配置文件(如config/autoload/cache.global.php)中添加caches配置块,指定默认缓存适配器:
'caches' => [ 'default-cache' => [ 'adapter' => Laminas\Cache\Storage\Adapter\Filesystem::class, 'options' => [ 'cache_dir' => __DIR__ . '/../../data/cache', ], ], ]
内容的提问来源于stack exchange,提问作者JI-Web
相关产品推荐
相关产品推荐

