Задать вопрос
@semki096

Как оптимизировать запросы к базе в Drupal8 на примере профиля пользователя?

Drupal8. Я вывожу в профиле пользователя только аватарку. Или я вывожу в профиле пользователя все его данные. Вопрос 1 - количество запросов к базе будет одинаковым?

Вопрос 2. Друпал использует шаблонизатор твиг. Если я хочу в профиле в левом баре поставить аватарку - как лучше это сделать Оптимально? То есть либо hook_preprocess, либо вывести вьюхой что наверно подразумевает запросы к базе. Что оптимальнее? Может еще есть вариант(без js).

Спасибо.
  • Вопрос задан
  • 206 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
afi13
@afi13
Drupal8. Я вывожу в профиле пользователя только аватарку. Или я вывожу в профиле пользователя все его данные. Вопрос 1 - количество запросов к базе будет одинаковым?

Объект текущего пользователя загрузится из базы полностью, т.к. он используется не только для вывода. Кол-во запросов к базе будет тем же. Но это не критично, т.к. объект будет закеширован.

Вопрос 2. Друпал использует шаблонизатор твиг. Если я хочу в профиле в левом баре поставить аватарку - как лучше это сделать Оптимально? То есть либо hook_preprocess, либо вывести вьюхой что наверно подразумевает запросы к базе. Что оптимальнее? Может еще есть вариант(без js).

Слишком обширный вопрос, аватарку можно вывести множеством способов. Можно сделать кастомный блок, использовать Views (в обоих случаях блок можно закешировать). Использовать Panels, или стандартную систему шаблонов Drupal, и т.д.
Запрос в базу на получение объекта текущего пользователя при выводе аватарки будет в любом случае.
Имейте ввиду что все ранее загруженные во время выполнения запроса объекты попадают в статический кеш и повторно не загружаются из базы при их вызове в другом месте.
Кроме того вы можете написать свой собственный запрос и получать из базы только нужное вам поле, но я считаю, что в данном случае в плане производительности вы ничего не выиграете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы