Как использовать ZendOpCache для кэша Доктрины2?


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

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

Это мой файл конфигурации.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 с кэшем доктрины 2?

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

Author: unairoldan, 2013-08-03

2 answers

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

Кэш операций PHP не является полноценным кэшем, так как APC - это просто кэш кода операции. Если вы хотите хранить пользовательские данные так же, как и в старом APC, вы можете использовать APCu Джо Уоткинса: https://github.com/krakjoe/apcu.

Существует также yac и memcache.

 7
Author: PeeHaa, 2017-05-23 12:00:35

На самом деле вы можете использовать opcache косвенно через PhpFileCache

 -2
Author: kor3k, 2013-09-30 22:43:05