Как использовать 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
2 answers
Добавление моего комментария в качестве ответа.
Кэш операций PHP не является полноценным кэшем, так как APC - это просто кэш кода операции. Если вы хотите хранить пользовательские данные так же, как и в старом APC, вы можете использовать APCu Джо Уоткинса: https://github.com/krakjoe/apcu.
Существует также yac и memcache.
На самом деле вы можете использовать opcache косвенно через PhpFileCache