Я хочу настроить TagAwareCache с бэкэндом APCU.
Результат должен быть введен в сервис.
Итак, у меня есть этот config.yml:
cache:
pools:
data_evaluator_cache_items_cache: # apcu backend
adapter: cache.adapter.apcu
public: true
data_evaluator_cache:
class: Symfony\Component\Cache\Adapter\TagAwareAdapter
arguments:
$itemsPool: "@data_evaluator_cache_items_cache"
public: true
AppBundle\Service\DataEvaluator:
alias: data_evaluator
arguments:
$cache: "@data_evaluator_cache"
data_evaluator:
class: AppBundle\Service\DataEvaluator
public: true
arguments:
$cache: "@data_evaluator_cache"
Сервис выглядит так:
class DataEvaluator {
public function __construct(Logger $l, AdapterInterface $cache) {
}
}
Из того, что я проверял, впрыскиваемый $cache
действительно TagAwareAdapter
, так что все в порядке.
Однако я сомневаюсь, что внутренний кэш элемента, передаваемый TagAwareCache
, является кэшем apcu. Предметы в порядке, это мои теги.
Вот два скриншота веб-панели инструментов. Во-первых, я вижу, что data_evaluator_cache_items_cache
используется для моих элементов кэша / полезных нагрузок.
Следующий скриншот заставляет меня нервничать: cache.app
используется для тегов! И cache.app
разрешается до FilesystemCache
.
Кстати: хорошо ли использовать APCU для предметов и меток? Мне не нужно распределенное кэширование или около того. Я слышал, что современный PhpFilesCache - это хорошо, начиная с PHP7 / opcache. У кого-нибудь есть практический опыт?