Silex,使用Twig服务

时间:2014-06-27 21:05:36

标签: php twig silex pimple

我在Silex中创建了一个应用程序。我想使用Twig在我的服务中渲染模板,由Pimple加载。我需要这个邮件类。

我开始编写基于silex-skeleton的应用程序,所以我在$ app [' twig']中有一个twig环境。问题是,当我想将它传递给服务时:

//app.php
$app['someModel'] = function ($app) {
    return new someModel($app['twig']);
};

当我写这样的东西时,树枝停止工作。我的所有子页面都显示:

  

Twig_Error_Loader:Template"(path).html.twig"未定义()。

我尝试了另一种技巧:

//app.php
$app['someModel'] = function ($app) {
    return new someModel($app);
};

//someModel.php
class SomeModel
{
    private $twig;

    public function __construct($app)
    {
        $this->twig = $app['twig'];
    }
}

但这也打破了树枝。我尝试将$ app [' twig']分配并克隆到另一个变量,然后它也会发生。

//app.php
$variable = $app['twig']

//app.php
$variable = clone $app['twig']

如何在Silex中使用Twig?

1 个答案:

答案 0 :(得分:0)

$app->register(new Silex\Provider\TwigServiceProvider(), 
  array('twig.path' => __DIR__.'/views',
));

要了解更多信息,请查看Silex Documentation