ZF3 zend-cache 错误 无法将服务"FilesystemCache"解析到出厂



我正在尝试将zend-cache与zend-rbac一起使用。

zend-rbac 还可以,但是当我尝试添加 zend-cache 时,我收到以下消息:

无法将服务"文件系统缓存"解析为出厂设置;您确定是在配置期间提供的吗?

我在全局.php的缓存配置是这样的:

// Cache configuration.
'caches' => [
'FilesystemCache' => [
'adapter' => [
'name'    => Filesystem::class,
'options' => [
// Store cached data in this directory.
'cache_dir' => './data/cache',
// Store cached data for 1 hour.
'ttl' => 60*60*1
],
],
'plugins' => [
[
'name' => 'serializer',
'options' => [                        
],
],
],
],
],

在我的RbacManagerFactory中,我是这样称呼它的:

$cache = $container->get('FilesystemCache');

我已经尝试在我的模块中配置文件系统服务,如下所示:

'service_manager' => [
'factories' => [
ZendCacheStorageAdapterFilesystemService::class => InvokableFactory::class,
],
],

但它没有用

我需要配置更多东西吗?

编辑 2018-10-29

当我尝试运行示例时,它给出了此错误:

[Mon Oct 29 12:06:13.097747 2018] [php7:warn] [pid 943] [client 127.0.0.1:48824] PHP Warning:  file_put_contents(data/cache/module-config-cache.application.config.cache.php): failed to open stream: No such file or directory in /var/www/html/roledemo/vendor/zendframework/zend-modulemanager/src/Listener/AbstractListener.php on line 65
[Mon Oct 29 12:06:13.098593 2018] [php7:warn] [pid 943] [client 127.0.0.1:48824] PHP Warning:  file_put_contents(data/cache/module-classmap-cache.application.module.cache.php): failed to open stream: No such file or directory in /var/www/html/roledemo/vendor/zendframework/zend-modulemanager/src/Listener/AbstractListener.php on line 65
[Mon Oct 29 12:06:13.112886 2018] [php7:error] [pid 943] [client 127.0.0.1:48824] PHP Fatal error:  Method Zend\View\Helper\HeadTitle::__toString() must not throw an exception, caught Zend\I18n\Exception\ExtensionNotLoadedException: Zend\I18n\Translator component requires the intl PHP extension in /var/www/html/roledemo/module/Application/view/layout/layout.phtml on line 0

我无法访问任何网址。

可能是我的 php 或 apache 版本吗?

所以我错过了一些东西,这就是为什么它以前不起作用的原因:

  • 创建data/cache文件夹并授予其权限 775
  • 创建public/img/captcha文件夹并授予其权限 775
  • 将模块ZendSerializerZendCache添加到config/modules.config.php
  • 将以下内容添加到module/Login/config/module.config.php
'rbac_manager' => [
'assertions' => [ServiceRbacAssertionManager::class],
],
  • 而且,如果您遵循文本而不是下载代码: 将$result设置为第 72 行src/Service/RbacManager.php中的false

相关内容

  • 没有找到相关文章

最新更新