如何写一个自定义的 Twig 扩展

书写扩展的主要目的就是把经常使用的代码移动到一个可重用的类中比如说添加国际化支持。扩展可以定义标签、 筛选、 测试、 操作符、 全局变量、 函数和节点访客

創建扩展也使得在编译执行的时候和代码运行的时候使您的代码能更好地分离。这样的话能使您的代码运行得更快。

在编写您自己的扩展之前, 请看一看

这本书介绍如何编写到 Twig 1.12 版本以后的自定义的 Twig 扩展。如果您使用的是旧版本请阅读。

如果想要使用您的自定义的功能艏先您必须创建一个 Twig 扩展类。如下面的例子比如您需要创建一个价格筛选器来把一个给定的数字转换为价格的格式:

除了自定义筛选器,你也可以添加自定义函数和注册全局变量

现在,您必须让服务容器知道您新创建了新的 Twig 扩展:

请记住 Twig 扩展并不是慢慢地加载这意味囿更高的可能性,您将会得到一个 (服务器循环引用异常)或 (超出作用域注入异常)如果任何服务 (或在这种情况下的 Twig 扩展) 是依赖于请求服务的话。想了解更多的信息去看看

使用您新创建的 Twig 扩展和使用其他扩展没有什么不同:

将其他参数传递到您的筛选器:

如果想要对 Twig 擴展有更深入的了解,请看看

我要回帖

 

随机推荐