Twig 自动声明细枝模板中使用的变量

Twig 自动声明细枝模板中使用的变量,twig,phpstorm,Twig,Phpstorm,我正在重构一些旧的细枝模板,其中许多变量被传递到模板,但没有在文档注释中声明(在PhpStorm中也可以用于类型暗示),如下所示: {# @var user AppBundle\Entity\User #} {# @var message string #} <p>Hello {{ user.fullName }}!</p> <p>{{ message }}</p> {# @var users AppBundle\Entity\User[] #}

我正在重构一些旧的细枝模板,其中许多变量被传递到模板,但没有在文档注释中声明(在PhpStorm中也可以用于类型暗示),如下所示:

{# @var user AppBundle\Entity\User #}
{# @var message string #}
<p>Hello {{ user.fullName }}!</p>
<p>{{ message }}</p>
{# @var users AppBundle\Entity\User[] #}
{# "user" variable is not documented as it is not passed into the template from outside #}
{% for user in users %}
<p>Hello {{ user.fullName }}!</p>
{% endfor %}
{var user AppBundle\Entity\user}
{#@var消息字符串}
你好{{user.fullName}}

{{message}}

是否有一个工具可以从模板中使用的变量预生成这些文档注释,理想情况下可用作PhpStorm插件

如果它只提取没有类型的变量名(从Twig语法很难猜到),这就足够了,只是为了确保我没有忽略一些变量

另外,如果它不声明在模板中创建的变量,那就太好了,如下所示:

{# @var user AppBundle\Entity\User #}
{# @var message string #}
<p>Hello {{ user.fullName }}!</p>
<p>{{ message }}</p>
{# @var users AppBundle\Entity\User[] #}
{# "user" variable is not documented as it is not passed into the template from outside #}
{% for user in users %}
<p>Hello {{ user.fullName }}!</p>
{% endfor %}
{#@var-users-AppBundle\Entity\User[]#}
{#“user”变量没有文档化,因为它没有从外部传递到模板中}
{users%%中的用户为%s}
你好{{user.fullName}}

{%endfor%}
这样的注释不仅有助于类型暗示,而且有助于开发人员在重构/重用模板时查看应该传递到模板中的内容


提前感谢。

据我所知,IDE或可用插件无法为您的用例提供任何建议。

据我所知,IDE或可用插件无法为您的用例提供任何建议。

谢谢您的回答,但我仍然希望会有一个积极的结果:)我也一样:)如果没有-请随时向PhpStorm bug tracker提交一个功能请求:好主意,但这更可能是Symfony插件的一个功能-我在这里发布了:谢谢你的回答,但是我仍然希望一个积极的结果会出现:)我也一样:)如果没有-请随时向PhpStorm bug tracker提交一个功能请求:好主意,但这更可能是Symfony插件的一个功能-我在这里发布了它:你是说你的第一个代码块为用户对象提供了PhpStorm自动完成功能吗?问,因为我的没有,我很乐意。是的,它适合我(最新的PhpStorm和Symfony插件)。尝试完全遵循此语法(varName/type与phpdoc的顺序相反,始终为FQCN)。但是,即使它没有提取这些注释,仍然会非常有用。您是说您的第一个代码块为用户对象提供PhpStorm autocomplete吗?问,因为我的没有,我很乐意。是的,它适合我(最新的PhpStorm和Symfony插件)。尝试完全遵循此语法(varName/type与phpdoc的顺序相反,始终为FQCN)。但即使它不这样做,提取这些评论仍然是非常有用的。