Render Twig macro from PHP? -
i'm migrating project old custom xml-based templating engine twig. in order ease transition thought might nice able render twig macros inside old engine new widgets can built using twig , ran in both places needed.
the way can think of doing generate twig source code looks this:
{% import 'macros.twig' m %} {{ m.widget(...) }}
and crazy like
eval('?>'.$twig->compilesource($twig->getloader()->getsource($name), $name));
which seems slow, dangerous, , brittle. there better way tap twig api?
yes, render template, should use:
echo $twig->loadtemplate($name)->render($context);
the loadtemplate
compile twig source if not exist in cache.
the render
method render template safely.
a macro method of compiled class (see compiled template link of fiddle: http://twigfiddle.com/orfp3d) can call macro outside quite easily, that's not recommended (as macro not take part of templateinterface
)
Comments
Post a Comment