在树枝中打印和隐藏转换变量的更好方法是什么?

时间:2018-10-16 14:52:26

标签: html twig string-concatenation

让我们说我有一个类似的设置,将翻译后的字符串,变量和分隔符(空格)混合在一张纸上。

{{ "app.user.welcometxt"|trans ~" "~ app.user.name ~" "~ app.user.lastname }}

这是一个好习惯吗? 还是应该将变量放在单独的语句中并依次打印?

{{ "app.user.welcometext"|trans }} {{ app.user.name }} {{ app.user.lastname }}

解决此问题的最佳方法是什么? 最快或最佳的性能是什么?

1 个答案:

答案 0 :(得分:0)

虽然我个人认为显式形式更具可读性,但是不同代码样式的可读性却是很固执的事情。

性能方面的显式形式...

{{ "app.user.welcometext"|trans }} {{ app.user.name }} {{ app.user.lastname }}

...绝对更好,因为Twig在替换3个字符串之前不必串联它们。我强烈建议您让Twig在内部处理这种类型的“优化”。

使用Twig输出用户问候语的更灵活方法如下:

{% trans with {'%name%': user.name, '%lastname%': user.lastname} from 'app' %}
  {{- app.user.welcometext -}}
{% endtrans %}

然后将欢迎文本设置为Hello %name% %lastname%之类的内容。

这将使您轻松地添加更多文本(即使用Hello %name% %lastname%. How are you feeling today?之类的问候语),而无需更改模板。