7

我已经在我的开发环境中安装了 PHP 5.5.1,并且还将 Zend OpCache 配置为缓存提供程序。一切都在使用新版本和设置的服务器上运行,但在我的 symfony 2 项目中,我有 Doctine2 缓存来存储一些“静态”数据(国家、语言等),它不适用于 Opcache。

直到今天,我一直在使用Doctrine\Common\Cache\ApcCache类来使用 APC 处理 Doctrine2 的缓存,但似乎不存在与 OpCache 一起使用的类。

这是我用于 APC 缓存的 config.yml:

# Services
services:
    cache:
        class: Doctrine\Common\Cache\ApcCache

现在,使用 OpCache 我尝试使用ZendDataCache来处理缓存系统,但不起作用:

# Services
services:
    cache:
        class: Doctrine\Common\Cache\ZendDataCache

我收到此错误,因此我假设 ZendDataCache 类不适用于 OpCache:

FatalErrorException:错误:在 /var/www/meediam/src/vendor/doctrine/common/lib/Doctrine/Common/Cache/ZendDataCache.php 第 38 行中调用未定义函数 Doctrine\Common\Cache\zend_shm_cache_fetch()

最后,我配置了ArrayCache,它可以工作,但后面没有缓存系统。

所以问题是, 有人知道如何将 Zend OpCache 与 Doctrine 2 Cache 一起使用吗?

PS:我使用的是 Symfony 2.3.2

4

2 回答 2

7

添加我的评论作为答案。

PHP 的 OpCache 不像 APC 那样是完整的缓存,它只是一个简单的操作码缓存。如果您想像使用旧 APC 一样存储自定​​义数据,您可以使用Joe Watkins 的APCu:https ://github.com/krakjoe/apcu 。

还有yac和 memcache。

于 2013-08-04T11:48:30.600 回答
-2

您实际上可以通过 PhpFileCache 间接使用 OpCache

于 2013-09-30T22:43:05.937 回答