Jak získat cestu k šabloně z které bylo makro voláno?
- jEhLa
- Člen | 70
Dobrý den,
prosím o radu. Potřeboval bych v definici makra nějak zjistit cestu
přesně k souboru v kterém bylo makro voláno.
Je to nějak možné?
Potřebuji nad předanou hodnoutou ($destination) provést úpravu, dle toho
kde se původní šablona nachází.
Nechci to runtime, ale jen při kompilaci.
Ale potřebuji vždy přesný soubor, pokud bylo makro použito v layoutu,
potřebuji cestu k layoutu a né až konečné šabloně presenteru.
class Macros extends MacroSet
{
public static function install( Compiler $compiler): void
{
$me = new static($compiler);
$me->addMacro('myInclude', [$me, 'macroMyInclude']);
}
public function macroMyInclude( MacroNode $node, PhpWriter $writer )
{
$destination = $node->tokenizer->fetchWord();
//zde bych potřeboval nějak získat cestu k souboru šablony,
//odkud bylo makro voláno, nejlépe absolutní
}
}
Editoval jEhLa (15. 11. 2020 7:02)
- jEhLa
- Člen | 70
David Grudl napsal(a):
Napadá mě jen z debug_backtrace
Děkuji za radu, ale tím to mám právě momentálně řešené, že si
v tom najdu první Latte\Engine, s metodou compile a převezmu první
argument.
Ale nepřijde mi to moc bezpečné na toto spoléhat. Proto přemýšlím nad
jiným způsobem.
Editoval jEhLa (15. 11. 2020 17:53)