我正在尝试使用上所述的template_from_string
http://twig.sensiolabs.org/doc/functions/template_from_string.html
我怎么能从Silex做到这一点?我看到Twig/Exteion/StringLoader.php文件就在那里。这是我尝试过的代码
$app['twig'] = $app->share($app->extend('twig', function($twig, $app) {
$twig->addExtension(new MarkdownExtension());
$twig->addExtension(new Twig_Extension_StringLoader());
return $twig;
}));
但当我试着像一样使用它时
return $app['twig']->template_from_string(
"The is the {{ title }}",
array('title' => 'Hello')
);
它生成以下错误
Fatal error: Call to undefined method Twig_Environment::template_from_string()
我试图做的是从DB或另一个文件中获取模板内容,然后用Twig渲染它,而不是使用模板文件,这样我就可以将几个部分模板组合到主模板中。或者如果有更好的方法?
请注意,我已经知道如何在模板文件中使用插入,如
{% include 'home-section.html.twig' %}
但这并不能解决我的问题,因为它不能自动获取要解析的内容数据。
谢谢。
只需要创建另一个树枝对象
$loader = new Twig_Loader_String();
$twig = new Twig_Environment($loader);
echo $twig->render('Hello {{ name }}!', array('name' => 'Fabien'));