2013-09-13 5 views
3

У меня есть таблица дб (учение предприятие), который я использую, чтобы сохранить некоторые редактируемые настройки для моего приложения, вроде заголовка страницы, режим обслуживания (вкл/выкл), и некоторые другие вещи ..настройки Symfony2 груз из БД

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

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

  • Как я могу кэшировать настройки базы данных, поэтому я бы сделал только один запрос БД, а затем в будущих запросах страницы он использовал бы кешированные значения вместо того, чтобы делать запрос БД для каждого запроса на страницу? (Конечно, каждый раз, когда я что-то изменить в настройках, мне нужно, чтобы очистить этот кэш, так что новые настройки могут вступить в силу)

ответ

2

LiipDoctrineCacheBundle предоставляет сервис обертку общего кэша Доктрины в (documentation), что позволяет используйте несколько драйверов кэш-памяти, таких как файловая система, apc, memcache, ...

Я бы рекомендовал загрузить ваши общие параметры контейнера/настройки (например, режим обслуживания, ...) из базы данных в bundle-extension или compiler-pass.

Параметры, специфичные для маршрута (например, название страницы, ...) могут быть загружены в kernel event listener. Вы можете найти список событий ядра here.

обновить/аннулировать их кеш, используя доктрину postUpdate/postPersist/postRemove listener.

Смежные вопросы