Php symfony细枝扩展获取配置变量

Php symfony细枝扩展获取配置变量,php,symfony,twig,config,Php,Symfony,Twig,Config,我正在尝试从自定义细枝扩展获取配置变量 如何从配置中获取someVar // src/AppBundle/Twig/AppExtension.php namespace AppBundle\Twig; class AppExtension extends \Twig_Extension { public function getFilters() { return array( new \Twig_SimpleFilter('price'

我正在尝试从自定义细枝扩展获取配置变量

如何从配置中获取someVar

// src/AppBundle/Twig/AppExtension.php
namespace AppBundle\Twig;

class AppExtension extends \Twig_Extension
{
    public function getFilters()
    {
        return array(
            new \Twig_SimpleFilter('price', array($this, 'priceFilter')),
        );
    }

    public function priceFilter($number, $decimals = 0, $decPoint = '.', $thousandsSep = ',')
    {
        $price = number_format($number, $decimals, $decPoint, $thousandsSep);
        // HOW TO ACCESS TO CONFIG VARIABLE
        $price = '$'.$price;
        return $price;
    }

    public function getName()
    {
        return 'app_extension';
    }
}

您可以将其作为普通变量访问

{{someVar}}
请看这里:


我希望这有帮助

您可以将其作为正常变量访问

{{someVar}}
请看这里:


我希望这有帮助

如果需要在模板中读取它,{someVar}}是正确的

但如果您需要在扩展中放置//如何访问配置变量的位置获取全局变量,请使用以下代码:

/* @var $globals \Twig_Environment */
$globals = $this->container->get('twig');
$vars = $globals->getGlobals();
var_dump($vars['someVar']); 
更新: 您需要在扩展中传递容器,因此添加构造函数

public function __construct(ContainerInterface $container)
{
    $this->container = $container;
}
并在service.yml处传递集装箱

   twig.extension.name:
        class: App\SomeBundle\Extensions\ClassTwig
        arguments: [@service_container]
        tags:
            - { name: 'twig.extension' }

如果需要在模板中读取{someVar}},则{someVar}}是正确的

但如果您需要在扩展中放置//如何访问配置变量的位置获取全局变量,请使用以下代码:

/* @var $globals \Twig_Environment */
$globals = $this->container->get('twig');
$vars = $globals->getGlobals();
var_dump($vars['someVar']); 
更新: 您需要在扩展中传递容器,因此添加构造函数

public function __construct(ContainerInterface $container)
{
    $this->container = $container;
}
并在service.yml处传递集装箱

   twig.extension.name:
        class: App\SomeBundle\Extensions\ClassTwig
        arguments: [@service_container]
        tags:
            - { name: 'twig.extension' }