Как использовать ZendOpCache для кеша Doctrine2?

Я установил PHP 5.5.1 в свою среду разработки, а также настроил Zend OpCache в качестве поставщика кэша. На сервере все работает с новой версией и настройками, но внутри моего проекта symfony 2 у меня есть кеш Doctine2 для хранения некоторых "статических" данных (страны, языки и т.д.), и он не работает с Opcache.

До сегодняшнего дня я использовал класс Doctrine\Common\Cache\ApcCache для работать с кешем Doctrine2 с помощью APC, но вроде не существует класса для работы с OpCache.

Это мой config.yml для кеша APC:

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

Теперь, с OpCache, я попытался использовать ZendDataCache для работы с системой кэширования, но не не работа:

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

Я получаю эту ошибку, поэтому я предполагаю, что класс ZendDataCache не для OpCache:

FatalErrorException: Ошибка: вызов неопределенной функции Doctrine\Common\Cache\zend_shm_cache_fetch() в /var/www/meediam/src/vendor/doctrine/common/lib/Doctrine/Common/Cache/ZendDataCache.php, строка 38

Наконец, я настроил ArrayCache, и он работает, но без системы кэширования. .

Итак, вопрос: Кто-нибудь знает, как использовать Zend OpCache с Doctrine 2 Cache?

PS: я использую Symfony 2.3.2


person unairoldan    schedule 03.08.2013    source источник
comment
PHP OpCache — это простой кеш кода операции. Для хранения данных в кеше вам понадобится что-то вроде: APCu.   -  person PeeHaa    schedule 03.08.2013
comment
Идеально. Он работает с использованием пользовательского кэша APCu. (если вы хотите, вы можете ответить на вопрос в новом ответе, чтобы пометить его как решенный)   -  person unairoldan    schedule 04.08.2013


Ответы (2)


Добавление моего комментария в качестве ответа.

PHP OpCache не является полноценным кешем, как APC. Это просто кеш кода операции. Если вы хотите хранить пользовательские данные так же, как в старом APC, вы можете использовать Joe Watkins' APCu: https://github.com/krakjoe/apcu.

Также есть yac и memcache.

person PeeHaa    schedule 04.08.2013

Фактически вы можете косвенно использовать OpCache через PhpFileCache.

person kor3k    schedule 30.09.2013