一起使用 silex 和 twig 时将变量暴露给所有 twig 模板

Exposing variable to all twig templates when using silex and twig together

我使用独立的 silex 和 twig(所以没有 Symfony)。我有一个对象需要为所有 silex 路线创建,并且需要暴露给所有树枝模板。我该怎么做?

举个例子:在下面的例子中,我宁愿不必在 Silex 路由的 use 子句中包含 $myObject,我也宁愿不必将它包含在数组中启动树枝时的 render 功能。由于所有路由和所有模板都需要它们,因此只会使代码混乱。

$myObject = new MyObject();
$app->get('/test', function () use ($app, $myObject) {     
    return $app['twig']->render(
      'someTemplate.twig',
      array('myObject' => $myObject)
    );    
});

您可以将它添加到您的全局变量中:

$app["twig"]->addGlobal("mObject", $myObject);