Я, кажется, сам отсортировал это, вроде как связано с введите описание ссылки здесь . По сути, из того, что я понимаю, запрос к хранилищу:
self::_instance()->_em->getRepository('UserManagement\Users')->find('1');
Не будет кешировать результаты. Если один и тот же запрос будет выполнен снова во время обработки скрипта, он не будет выполнять поиск и использовать результат, который он имеет в памяти - это не то же самое, что реальное кэширование, в моем случае с использованием Memcache.
Единственный способ добиться этого - переопределить метод find () Doctrine EntityRepository в пользовательском репозитории с помощью чего-то вроде:
public function find($id)
{
// Retrieve an instance of the Entity Manager
$qb = $this->getEntityManager()->createQueryBuilder();
$qb->select('u')
->from('UserManagement\Users', 'u')
->where('u.id = :id')
->setParameter('id', $id);
$query = $qb->getQuery();
$query->useResultCache(TRUE);
$result = $query->getSingleResult();
return $result;
}
Примечательно, что самая важная строка из приведенного выше - $query->useResultCache(TRUE);
- это сообщает Приложению о необходимости кэшировать результаты.
Надеюсь, это поможет.