Результат кэширования для объектов ReadOnly doctrine2 с symfony2 - PullRequest
1 голос
/ 16 октября 2011

примечание: извините за мой плохой английский, я француз, но я постараюсь быть максимально понятным.

Я вхожу в Doctrine2 с Symfony2.Просто сделайте небольшую игру для удовольствия, чтобы изучать новые вещи и тестировать эти новые удивительные инструменты.Вот мое предложение: я хочу сохранить свою конфигурацию игры в базе данных (например, предметы, информацию о расе и т. Д.), Чтобы воспользоваться удобным синтаксисом сущностей:

$user->getRace()->getName();

Дело в том, что «раса» илиинформация «Товар» вряд ли изменится.Я обнаружил аннотацию сущности @ReadOnly, которая сообщает Doctrine не проверять обновления в этих сущностях после первой вставки.Мне интересно, знаете ли вы способ «прозрачного» (я имею в виду, доктрина делает это для меня) кэширования этих результатов, чтобы предотвратить бесполезные объединения каждый раз, когда я получаю информацию о моем пользователе.

1 Ответ

4 голосов
/ 16 октября 2011

Единственное, что делает аннотация @ ReadOnly , - это говорит Doctrine не обновлять сущность при сбросе. Событие, если оно было изменено, не обновляется.

Так что это не имеет ничего общего с запросами.

Если вы хотите кэшировать объекты Race или Item, вам следует использовать кэш результатов . Это позволяет вам кэшировать результат любого запроса.

Чтобы упростить использование (и возможность многократного использования), вы можете внедрить пользовательскую аннотацию, которая позволит этому запросу для ссылочной сущности автоматически использовать кеш результатов.

...