php - 如何使用 ZendOpCache 作为 Doctrine2 缓存?

标签 php symfony doctrine-orm opcache

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

相关文章:

php - 无法在@dataProvider PHPUnit 中返回对象

php - 使用 codeigniter 将出价放入出价表中

javascript - 当更新的 PHP 动态时钟收到新输入时发出信号

linux - Vagrant、Symfony、chmod 许可证

php - Doctrine2 更新导致 Zend Framework 3 中 AnnotationRegistry registerLoader 错误

php - 使用 php 从 mysql 查询中排序数据有困难

php - 如何添加适当的 Doctrine 查询构建器并加入表格

php - 为什么 Symfony2 中的 session 数据为空以及如何访问它?

mysql - Doctrine 2 mysql FIELD函数按顺序排列

php - Doctrine ORM 内存问题