Doctrine 2 Cache: можно ли использовать кеш с Repository :: find * ()? - PullRequest
5 голосов
/ 30 января 2011

Я новичок в кешировании.Из документов я могу использовать кеширование с запросами, но как насчет таких методов, как

$em->find('Application\Models\project', 1);

Ответы [ 2 ]

2 голосов
/ 30 августа 2011

Если вы ищете автоматизм, я думаю, что awnser нет, они не такие вещи.Я искал что-то вроде этого сам.Вы можете обернуть find (...) в метод класса обслуживания, getProjectById ($ id) и сделать кеширование внутри этого метода самостоятельно.Но тогда вам также нужен метод save (), чтобы очистить кэш для определенного идентификатора после сброса.

1 голос
/ 04 ноября 2011

Как указывал Кристиан, вы можете самостоятельно выполнять кэширование запросов с дополнительными затратами на очистку кэша.

Еще одно замечание, поскольку я обнаружил, что просматривал класс EntityRepository. Метод find () проверяет карту идентификаторов на основе идентификатора, поэтому, если вы выполните 2 вызова find () для одной и той же сущности в одной и той же доктрине запроса, это должно вернуть последующие обращения из памяти веб-сервера.

...