我已经在我的开发环境中安装了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()< / p>
最后我配置了ArrayCache,它可以工作,但没有缓存系统。
所以问题是, 任何人都知道如何将Zend OpCache与Doctrine 2 Cache一起使用?
PS:我使用的是Symfony 2.3.2
答案 0 :(得分:7)
添加我的评论作为答案。
PHP的OpCache不是一个完整的缓存,因为它是一个简单的操作码缓存。如果您想像使用旧版APC一样存储自定义数据,可以使用Joe Watkins' APCu:https://github.com/krakjoe/apcu。
还有yac和memcache。
答案 1 :(得分:-2)
您实际上可以通过PhpFileCache间接使用OpCache