Paweł
Koralewski
architekt aplikacji,
team leader
konto usunięte
Temat: renderowanie widoku ze stringa a nie z pliku
Najprościej - dodać nowy templating engine, który tak na prawdę jest kopią Twiga ale zamiast Twig_Loader_Filesystem($templateDir) używa Twig_Loader_String().Z tego co widzę, to mniej więcej to właśnie robi ów bundle (bundel?)Michał Wachowski edytował(a) ten post dnia 13.03.12 o godzinie 00:15
Antoni
Orfin
Software Architect /
Symfony Consultant
Temat: renderowanie widoku ze stringa a nie z pliku
Można użyć tego bundle'a, a można samemu sklecić kod w stylu:
// gdziekolwiek, nawet może być static ;)
private function getNewTwigInstance(\Twig_LoaderInterface $loader, \Twig_Environment $twigEnv = null) {
$twig = new \Twig_Environment($loader);
// 'klonowanie' środowiska zadanego w parametrach metody
if($twigEnv !== null) { $twig->setExtensions($twigEnv->getExtensions());
$twig->setCache($twigEnv->getCache());
$twig->setLexer($twigEnv->getLexer());
$twig->setCharset($twigEnv->getCharset());
}
return $twig;
}
// przykładowe wywołanie, w kontrolerze
public function myAction() {
$myString = 'test';
$twig = $this->getNewTwigInstance(new \Twig_Loader_String(), $this->get('twig'));
$template = $twig->loadTemplate($myString);
$rendered = $template->render(); // w render tablica asocjacyjna z parametrami do wyrenderowania szablonu (zmiennymi)
...
}
mało uniwersalne itp ale proste.
Podobne tematy
Następna dyskusja: