我正在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 install
、composer update
并重新启动本地XAMPP。