【问题标题】:Is it possible or not to use a native php function in Twig?是否可以在 Twig 中使用本机 php 函数?
【发布时间】:2013-03-14 15:16:31
【问题描述】:

我是 Symfony 的新手。如何在 twig 模板中使用原生 php 函数?

例如我想在这样的循环中使用函数chr

{% for directory in directories %}
    chr(loop.index)
{% endfor %}

【问题讨论】:

  • 你应该编辑你的标题说in Twig而不是in Symfony 2
  • 你为什么要把loop.index转换成它的ascii字符???
  • 这是一个例子,我只是想知道它是否可能? ;)

标签: php function templates symfony twig


【解决方案1】:

【讨论】:

  • 我知道,但我想使用原生函数,我必须将它们重新声明为 twig 函数吗?我只是想知道这是否可能? ;)
  • @user777897:据我所知,是的。这就是问题的一部分,应该仅限于模板引擎提供的设施
  • 是的,最好这样处理。 Twig 可以轻松扩展,添加功能和过滤器是微不足道的。
【解决方案2】:

不,你不能直接在 Twig 中使用 PHP。

有一些选择:

使用 PHP 作为模板引擎

您可以将 PHP 设置为模板引擎而不是 Twig。这意味着您在模板中使用 PHP,并且可以使用所有原生 PHP 函数。请参阅this doc article 了解如何执行此操作。

创建一个 Twig 扩展

您可以轻松创建自己的 Twig 扩展程序。最佳实践是创建一个AcmeTwigBundle,在其中放置所有常见的 Twig 扩展。请参阅this doc article,了解如何在 Symfony 中执行此操作。

从 Twig 1.12(Symfony2.2 附带)开始,有一个非常好的类可以让您轻松地将 PHP 函数映射到 twig 函数:

new Twig_SimpleFilter('rot13', 'str_rot13');

这将创建一个映射到str_rot13 PHP 函数的rot13 Twig 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2010-09-08
    • 1970-01-01
    • 2014-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多