Twig Best Practices
🧠 Суть
Правила написания Twig шаблонов в Craft CMS.
💻 Организация кода
twig
{# Плохо #}
{{ entry.body|markdown|raw }}
{# Хорошо #}
{% set content = entry.body|markdown|raw %}
{{ content }}💻 Embeds для компонентов
twig
{# _components/card.twig #}
{% macro card(entry) %}
<article class="card">
<h3>{{ entry.title }}</h3>
<p>{{ entry.summary }}</p>
</article>
{% endmacro %}
{# Использование #}
{% from '_components/card' import card %}
{{ card(entry) }}💻 Кэширование
twig
{% cache globally for 1 day %}
{% nav page in pages %}
...
{% endnav %}
{% endcache %}⚠️ Подводные камни
eagerLoadingдля связанных элементов- N+1 проблема с
entry.relations |lengthна Matrix — дорого
🚀 Best Practice
- Кэшируй всё что можно
- Eager load relations
- Используй
embedsвместоinclude - Избегай логики в шаблонах