Cache API
API Cache значительно улучшен в Drupal 8. В следующих разделах более подробно рассматривается каждая функция.
Для краткого ознакомления см. также страницу API Cache из документации API.
Метаданные кешируемости
Все вещи, которые либо напрямую визуализируются, либо используются для определения того, что отображать, предоставляют метаданные для кэширования - от результатов доступа до сущностей и URL-адресов.
Метаданные для кеширования состоят из 3 свойств:
- кеш теги
Для зависимостей от данных, управляемых Drupal, таких как сущности и конфигурация
- контексты кэша
Для вариантов, то есть зависимости от контекста запроса
- максимальный возраст кэша
Для чувствительного ко времени кэширования, то есть временных зависимостей
Практично: как вы обычно будете использовать Cache API
Как правило, ваш код заканчивает рендерингом объектов (блоков, сущностей и т. д.), А ваши контроллеры возвращают массивы рендеринга или ответы. Поэтому обычно вы не будете напрямую взаимодействовать с Cache API. Вместо этого вы будете использовать:
Визуализация кэширования (также известное как кэширование фрагментов)
API рендеринга использует метаданные для кеширования, встроенные в массивы рендеринга, для выполнения кэширования (или рендеринга). Поэтому Cache API не следует использовать для взаимодействия с кешем рендеринга (ни для извлечения элементов кеша, ни для создания новых).
См. Кэшируемость массивов рендеринга.
Кэширование ответов
Метаданные для кеширования, используемые API рендеринга (см. Предыдущий раздел), пузыриваются вплоть до объектов Response (обычно HtmlResponse), которые реализуют CacheableResponseInterface.
Метаданные для кеширования в этих объектах Response позволяют Drupal 8 поставляться с включенным по умолчанию Page Cache и Dynamic Page Cache, поскольку он позволяет им работать прозрачно: они всегда актуальны и всегда меняются соответствующим образом.
Смотрите CacheableResponseInterface.
Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.