2014-06-27 61 views
0

我在Silex中創建應用程序。我想使用Twig在由Pimple加載的服務中呈現模板。我需要這個郵件類。Silex,在服務中使用Twig

我開始編寫基於silex-skeleton的應用程序,所以我在$ app ['twig']中有一個樹枝環境。問題是,當我想將它傳遞到服務:

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

當我在寫這樣的事情,樹枝停止工作。我的所有子頁面顯示:

Twig_Error_Loader:模板「(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服務?

回答

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

欲瞭解更多信息,請看Silex Documentation

+0

我註冊了枝條供應商,像[這裏](https://github.com/silexphp/Silex-Skeleton/blob/master/src/app.php),我的網站通常工作。問題在於,當我嘗試將它放入服務中時,枝條會斷裂。 –

+0

'小枝休息'是什麼意思? –

+0

當我通過pimple將$ app ['twig']添加到服務中時,那麼在正常工作之前,我的所有子頁面顯示:Twig_Error_Loader:Template「(path).html.twig」未定義()。 –