Вы можете попробовать повторить логику TwigExtensionLoader, как определено here в compilerPass, как пример:
public function process(ContainerBuilder $container)
{
$def = $container->getDefinition('twig');
$def->addMethodCall('addGlobal', array('my-key', 'my-value'));
}
более подробный пример:
Предположим, что у нас есть нагруженные свойства следующим образом:
twig_params.yml
parameters:
foo: bar
Уже нагружено мы можем внедрение зависимости добавить compiler pass, как пример:
CustomPass
use Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface;
use Symfony\Component\DependencyInjection\ContainerBuilder;
class CustomPass implements CompilerPassInterface
{
public function process(ContainerBuilder $container)
{
$foo = $container->getParameter('foo');
$def = $container->getDefinition('twig');
$def->addMethodCall('addGlobal', array('foo', $foo));
}
}
See the docs here about как зарегистрировать его.
Затем вы можете использовать в шаблоне веточки как обычные глобальные переменные:
{{ foo }}
Надеется, что это поможет
привета @ user742736 вы нашли решение? Что вы думаете о подходе, описанном в моем ответе? – Matteo