Změny a novinky uvnitř Latte
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- David Grudl
- Nette Core | 8285
V implementaci Latte došlo v poslední verzi k několika změnám. Týkají se vás pouze pokud Latte rozšiřujete o nová makra; pokud v něm jen píšete šablony, k žádným změnám nedochází.
BC breaky:
- Třída
Latte\Parserbyla rozdělena naLatte\ParseraLatte\Compiler. S makry pracuje compiler, takže se mění typehint uMacroSet::install()nebo případné voláníEngine::neboMacroSet::getParser()naMacroSet::getCompiler(). - čistá n:makra se již neregistrují pomocí
$me->addMacro('@class', $callback);ale pomocí$me->addMacro('class', NULL, NULL, $callback);. (Zavináč byl odstraněn). - Přepínání režimu XHTML/HTML už nevychází z hodnoty
Nette\Utils\Html::$xhtml. Výchozí zůstává XHTML režim (protože je kompatibilní s HTML5 ale ne naopak) a přepnout jej do HTML lze buď makrem{contentType html}nebo voláním$latte->compiler->defaultContentType = Nette\Latte\Compiler::CONTENT_HTML;nebo v konfiguraci.
A teď novinky:
- Každé makro reprezentované objektem MacroNode má nyní proměnné
$openingCode, $closingCode a $attrCode, ve kterých je uložen otevírací, uzavírací a n:atributový PHP kód makra. (Včetně PHP značek) - Otevírací, uzavírací a atributový kód může být vygenerován kdykoliv! Tedy klidně až ve chvíli, kdy se makro uzavírá.
- Vnitřek makra je v $node->content
- U maker zapsaných pomocí n:atributů je k dispozici proměnná $node->htmlNode
- Šablony lze tokenizovat pomocí
Latte\Parser, ten vrací pole objektůLatte\Token. Lze tak třeba zkoumat, jaká makra soubor obsahuje.