Советы и трюки
Редакторы и IDE
Пишите шаблоны в редакторе или IDE, который поддерживает Latte. Это будет гораздо приятнее.
- PhpStorm: установите в
Settings > Plugins > Marketplace
плагин Latte - VS Code: установите Nette Latte + Neon, Nette Latte templates или новейший Nette for VS Code плагин
- NetBeans IDE: встроенная поддержка Latte является частью установки
- Sublime Text 3: в Package Control найдите и установите пакет
Nette
и выберите Latte вView > Syntax
- в старых редакторах используйте для файлов .latte подсветку Smarty
Плагин для PhpStorm очень продвинутый и отлично подсказывает PHP-код. Чтобы он работал оптимально, используйте типизированные шаблоны.

Поддержку Latte вы также найдете в веб-подсветчике кода Prism.js и редакторе Ace.
Latte внутри JavaScript или CSS
Latte можно очень удобно использовать и внутри JavaScript или CSS. Но как избежать ситуации, когда Latte ошибочно примет JavaScript-код или CSS-стиль за тег Latte?
Вариант 1
Избегайте ситуации, когда буква следует сразу за {
, например,
вставив перед ней пробел, перенос строки или кавычку:
Вариант 2
Полностью отключите обработку тегов Latte внутри элемента с помощью n:syntax:
Вариант 3
Переключите синтаксис тегов Latte внутри элемента на двойные фигурные скобки:
В JavaScript не пишутся кавычки вокруг переменной.
Замена use
в Latte
Как в Latte заменить конструкции use
, которые используются в PHP,
чтобы не писать пространство имен при доступе к классу? Пример на PHP:
Вариант 1
Вместо конструкции use
сохраним имя класса в переменную, а
затем вместо Dog
будем использовать $Dog
:
Вариант 2
Если объект $dog
является экземпляром Pets\Model\Dog
, то можно
использовать {if $dog->status === $dog::StatusHungry}
.
Генерация XML в Latte
Latte может генерировать любой текстовый формат (HTML, XML, CSV, iCal и т. д.),
однако, чтобы правильно экранировать выводимые данные, мы должны
сообщить ему, какой формат генерируем. Для этого служит тег {contentType}
.
Затем мы можем, например, сгенерировать карту сайта подобным образом:
Передача данных из включенного шаблона
Переменные, которые мы создаем с помощью {var}
или {default}
во включенном шаблоне, существуют только в нем и недоступны во
включающем шаблоне. Если бы мы хотели передать какие-либо данные из
включенного шаблона обратно во включающий, одним из вариантов
является передача объекта в шаблон и вставка данных в него.
Основной шаблон:
Включенный шаблон included.latte
: