【问题标题】:PHP Silex Framework can't add Twig_Extension_StringLoader extensionPHP Silex 框架无法添加 Twig_Extension_StringLoader 扩展
【发布时间】:2013-12-05 21:00:01
【问题描述】:

我正在尝试使用

中所述的 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()

我想做的是从数据库或其他文件中获取模板内容,然后用 Twig 渲染它而不是使用模板文件,这样我就可以将几个部分模板组合到主模板中。或者有没有更好的方法?

请注意,我已经知道如何在模板文件中使用插入功能,例如

{% include 'home-section.html.twig' %}

但这并不能解决我的问题,因为它无法获取要自动解析的内容数据。

谢谢。

【问题讨论】:

    标签: php symfony frameworks twig silex


    【解决方案1】:

    只需要创建另一个树枝对象

    $loader = new Twig_Loader_String();
    $twig = new Twig_Environment($loader);
    
    echo $twig->render('Hello {{ name }}!', array('name' => 'Fabien'));
    

    【讨论】:

      猜你喜欢
      • 2019-06-17
      • 1970-01-01
      • 2019-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      • 2016-04-18
      相关资源
      最近更新 更多