弃用 twig 过滤器,改用 Twig_SimpleFilter

Deprecation of twig filters, use Twig_SimpleFilter instead

我使用的是 Symfony 2.3,我的分析器中有与 Twig 相关的弃用警告。如:

DEPRECATION - Using "replace" with character by character replacement is deprecated 
and will be removed in Twig 2.0

而且 |replace 标签似乎仍然是 Twig 文档的一部分,所以我对如何处理这个警告有点困惑。

此外,我从我使用的第三方捆绑包中收到类似的弃用警告。

事实上,修复它的唯一方法是替换所有已弃用的函数。

但是只有当你通过以下方式升级你的树枝包时,这才会引起麻烦:

  • 如果您的 composer.json 标签不是版本(例如 "twig/extensions": "1.*",

  • ,请更新 Composer
  • 如果你用需要 twig 的版本升级你的 symfony 2.x

事实上,如果您继续使用此版本,您的项目将不会受到此警告的影响。

您需要更改传递 参数的方式 以替换 twig 中的函数:

  • 之前:{{str |替换 ('a','b') }}
  • 现在:{{str |替换 ({'a': 'b'}) }}

以前是两个参数,现在是数组。

您可以查看代码源,它不是 replace twig_replace_filter 函数,该函数已被弃用,但只有一种调用方式:https://github.com/twigphp/Twig/blob/1.x/lib/Twig/Extension/Core.php#L534

请注意,twig 文档显示了正确的示例: http://twig.sensiolabs.org/doc/filters/replace.html