无法解决工厂的服务"memcache";您确定是在配置期间提供的吗?



我正在Laminas项目中将PHP 7.4升级到8.1。

在config/autoload/global.php中,我有-

"缓存"=>需要DIR。'/caches.php',

这是caches.php-

'caches' => array(
'memcached' => array(
'adapter' => 'memcache',
'options' => array(
'namespace' => 'IDSSO',
'ttl' => 900, //900 seconds = 15 minutes
),
'plugins' => array(
array(
'name' => 'exception_handler',
'options' => array(
'throw_exceptions' => false,
),
),
)
),
),
);

我转到我的门户网站,看到这个错误-

文件:

/project/vendor/laminas/laminas-servicemanager/src/ServiceManager.php:620

消息:

Unable to resolve service "memcache" to a factory; are you certain you provided it during configuration?

在我的composer.json中,我添加了

"laminas/laminas-cache-storage-deprecated-factory" : "^1.0.1",
"laminas/laminas-cache" : "3.4.0"

和module.config.php我添加了

'service_manager' => array(
'abstract_factories' => array(
'LaminasCacheServiceStorageCacheAbstractServiceFactory',
'LaminasLogLoggerAbstractServiceFactory',
'LaminasCacheStorageAdapterMemcache'
),

我无法通过这些更改解决此问题。

我自己解决了这个问题。

1。我在composer.json-上添加了这些包

"laminats/laminats高速缓冲存储器弃用工厂":"1.0.1";,

"laminats/laminats高速缓存存储适配器memcached":"2.1.0";

然后做composer update

或者,您也可以运行-

composer require laminas/laminas-cache-storage-deprecated-factory

CCD_ 4。

2.按照此url中的步骤操作-https://github.com/lifenglsf/php_memcached_dll

- copy libmemcached.dll to c:Windows
- copy php-memcached.dll to you PHP/ext directory

3.在php.ini中添加此行-

extension=memcached

4.在caches.php文件中-

更改"adapter"=>'memcache',到'adapter' => 'memcached',

完成后,执行composer installcomposer update并重新启动本地XAMPP。

最新更新