如何在树枝模板文件中定义全局变量?

Amir Ajoudanian |

是否可以在树枝文件中设置全局变量,以便我可以从其他文件,宏和块访问该变量。

例如,我想要variables.twig文件,并在其中设置变量,然后将其包含在其他模板中。

我知道可以从框架(例如Symfony)中设置全局变量,但是我只想使用树枝功能的解决方案。

阿兰·廷伯罗(Alain Tiemblo)

使用Symfony2配置

如果您使用的是Symfony2,则可以在config.yml文件中设置全局变量

# app/config/config.yml
twig:
    # ...
    globals:
        myStuff: %someParam%

然后{{ myStuff }}在应用程序中的任何地方使用


使用Twig_Environment :: addGlobal

如果在另一个项目中使用Twig,则可以直接在环境中设置全局变量:

$twig = new Twig_Environment($loader);
$twig->addGlobal('myStuff', $someVariable);

然后{{ myStuff }}在应用程序中的任何地方使用


使用Twig扩展名

如果您有很多全局变量,并且只想为应用程序的特定部分指定一组全局变量,则可以创建一个Twig扩展:

class Some_Twig_Extension extends Twig_Extension implements Twig_Extension_GlobalsInterface
{
    public function getGlobals()
    {
        return array(
            'someStuff' => $this->myVar,
            // ...
        );
    }

    // ...
}

然后仅在需要时将其导入您的环境中:

$twig = new Twig_Environment($loader);
$twig->addExtension(new Project_Twig_Extension());

仍可{{ myStuff }}在应用程序中的任何地方使用

使用树枝模板

当包含一段Twig代码时,仅包含来自该代码的呈现视图,而不包括代码本身。因此,根据设计,不可能按照您想要的方式包含一组变量。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在模板中声明全局变量?

如何在Django模板中创建全局变量?

如何在所有树枝页面均可访问的ndoe js中设置全局变量

如何在terraform中定义全局变量?

如何在nunjucks中定义全局变量?

如何在CoffeeScript中定义全局变量?

如何在R包中定义“隐藏的全局变量”?

如何在 React Native 中定义全局变量?

如何在Linux内核中定义全局变量?

如何在Deno中定义全局变量?

如何在Powershell中定义全局变量

如何在.js文件中声明全局变量

如何在python中的文件之间传递全局变量

如何在nix文件中创建全局变量(或函数)?

如何在Angular 2中定义全局变量,以便可以将它们用于模板中的属性绑定?

如何在AngularDart中定义全局模板变量

如何在不使用帮助程序的情况下访问Meteor模板中的全局变量?

如何在Ansible中从“ ansible-playbook额外变量”定义“全局变量”?

如何在python中定义空变量或将值从函数传递给全局变量?

如何在不同文件的函数中使用预定义的全局变量

Codeigniter TWIG:如何访问模板中的全局变量

如何从模板覆盖XSLT中的全局变量?

Javascript:如何在不同的 .js 文件中传递全局变量/常量变量

如何在rpg程序中定义可在调用函数中访问的全局变量

如何在Oracle中的PL / SQL中定义全局变量?

如何在函数内部定义全局变量?

如何在Mocha测试中模拟全局变量(定义,模块,窗口)?

如何在Nuxt中定义全局变量以在任何地方访问

如何在if / else序列中定义未知类型的全局变量?