Creating and using Twig globals

Code
<?php

class MyGlobal
{
    public function 
getFoo()
    {
        return 
'foo';
    }
    
    public function 
getBar()
    {
        return 
'bar';
    }
}

// creating Twig Global as Extension
class MyTwigGlobals extends Twig_Extension
{
    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_Filesystem($path);
$twig = new Twig_Environment($loader);
$twig->addExtension(new MyTwigGlobals());

echo 
'<b>- rendered template:</b>' PHP_EOL;
echo 
$twig->render($file);
Result
- template content:
getFoo() contains: {{ my_global.foo }}
getBar() contains: {{ my_global.bar }}
- rendered template:
getFoo() contains: foo
getBar() contains: bar
Used Versions
PHP 7.1, Zend 3.0, Symfony 3.2, Laravel 5.2, PHPUnit 5.6, Doctrine 2.6