<?php
class MyGlobal
{
public function getFoo()
{
return 'foo';
}
public function getBar()
{
return 'bar';
}
}
// creating Twig Global as Extension
class MyTwigGlobals extends Twig\Extension\AbstractExtension
{
public function getName()
{
return 'MyGlobals';
}
public function getGlobals()
{
return [ 'my_global' => new MyGlobal()];
}
}
$path = __DIR__ . '/templates/';
$file = 'global.html.twig';
echo '<b>- template content:</b>' . PHP_EOL;
echo file_get_contents($path . $file) . PHP_EOL;
$loader = new Twig\Loader\FilesystemLoader($path);
$twig = new Twig\Environment($loader);
$twig->addExtension(new MyTwigGlobals());
echo '<b>- rendered template:</b>' . PHP_EOL;
echo $twig->render($file);