如何编写一个自定义树枝扩展

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.3,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何编写一个自定义树枝扩展

如果你需要创建自定义的Twig函数,过滤器,测试或更多,你将需要创建一个Twig扩展。你可以阅读更多树枝的扩展在Twig文档中。欧宝官网下载app

创建扩展类

假设您想要创建一个名为价格将数字格式化为货币:

1 2 3 4
{{产品。价格|price }}{#传入3个可选参数#}{{产品。价格|price(2, ',', '.') }}

创建一个可扩展的类\ Twig_Extension然后填入逻辑:

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
/ / src / AppBundle /理解/ AppExtension.php名称空间AppBundle嫩枝AppExtension扩展Twig_Extension{公共函数getFilters(){返回数组\ Twig_SimpleFilter (“价格”数组“priceFilter”)));}公共函数priceFilter数量小数0decPoint“。”thousandsSep”、“{价格= number_format (数量小数decPointthousandsSep);价格“美元”价格返回价格;}}

请注意

在Twig 1.26之前,你的扩展必须定义一个额外的getName ()方法,该方法返回带有扩展的内部名称的字符串(例如。app.my_extension).当你的扩展需要兼容1.26之前的Twig版本时,包括上面例子中省略的这个方法。

提示

除了自定义过滤器,您还可以添加自定义功能并注册全局变量

将扩展注册为服务

接下来,将类注册为服务并标记为twig.extension.如果你在用默认的服务。yml配置,你完蛋了!ob娱乐下载Symfony将自动了解您的新服务并添加标记。

你现在可以开始在任何Twig模板中使用你的过滤器。

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。