Кроме встроенных во фреймворк функций, позволяющих встраивать стандартные шаблоны, есть возможность помещать содержимое шаблонов в кеш.
Кеширование может как ускорить некоторые части приложения, так и замедлить, если эти части работают и так быстро. Учитывая, что шаблон должен только отдавать данные, а не заниматься сложными вычислениями, кеширование должно проводиться уровнем выше. Однако, для сугубо специализированных случаев, особенно, когда в шаблон вставлено много других шаблонов и из-за этого может быть лишнее потребление ресурсов, есть смысл помещать этот шаблон в кеш на небольшой промежуток времени.
Кеш шаблонов не подходит для динамически меняющихся и внутренних страниц сайта, для которых нужна авторизация, так как пользователь за время жизни кеша может выйти из профиля, но на странице этого не будет видно. Лучше всего его использовать для статических страниц сайта, изменения на которых производятся редко и в тех частях, где нет критичных для безопасности данных условий (таких, как авторизация).
Эта функция аналогична insertTemplate(), но содержит дополнительный аргумент sec, в котором можно указать, на какое время в секундах установить кеширование. По истечении этого времени очередной запрос к шаблону изменит его в кеше на это же количество секунд (на минуту в примере).
Необходимо быть осторожными с данными, которые поступают в кешируемый шаблон, а также теми, что могут получаться внутри шаблона из внешних источников.
В первом случае будет создан новый кеш, исходя из хеша изменившихся данных, что приведет к разрастанию места на диске, занятого кешированными данными.
Во втором - данные никак не изменятся и останутся в кеше с момента его обновления.
В примере для каждого отличающегося ID пользователя будет создан отдельный хеш по запросу, а для значения NULL будет отдаваться еще один вариант кеша.
При любом сомнении в уместности кеширования шаблона, этого лучше не делать.
← Стандартные шаблоны Шаблонизатор TWIG →