我已经在我的开发环境中安装了 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