Доступ к каждой переменной очень громоздок, поэтому в итоге я создал расширение, содержащее необходимые мне данные:
class SampleExtension extends Twig_Extension {
private $foo;
function getName() {
return 'sampleExtension';
}
function getFunctions() {
return array(
'setFoo' => new Twig_Function_Method($this, 'setFoo')
);
}
function setFoo($value) {
$this->foo = $value;
}
function getFoo() {
return $this->foo;
}
}
А в классе, где мне нужны были данные:
$this->sampleExtension = new SampleExtension();
$twigEnv->addExtension($this->sampleExtension);
...
$html = $twigEnv->render('myTemplate.tpt', ...);
Используя этот шаблон:
...
{{ setFoo('bar') }}
...
После рендера:
echo $this->sampleExtension->getFoo(); // Prints bar