我已经在我的开发环境中安装了 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: Error: Call to undefined function Doctrine\Common\Cache\zend_shm_cache_fetch() in /var/www/meediam/src/vendor/doctrine/common/lib/Doctrine/Common/Cache/ZendDataCache.php line 38
最后我配置了 ArrayCache , 它可以工作,但没有缓存系统。
所以问题是, 有人知道如何将 Zend OpCache 与 Doctrine 2 缓存一起使用吗?
附言:我使用的是 Symfony 2.3.2
最佳答案
添加我的评论作为答案。
PHP 的 OpCache 不像 APC 那样是一个完全成熟的缓存,它只是一个简单的操作码缓存。如果您想像使用旧 APC 一样存储自定义数据,您可以使用 Joe Watkins' APCu:https://github.com/krakjoe/apcu .
还有yac和内存缓存。
关于php - 如何使用 ZendOpCache 作为 Doctrine2 缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18034745/