我在一个 php 项目中使用 PHPStorm 8.1 作为 IDE(laravel 4.1 项目在 View 侧带有 Twig )
如果你可以在 symfony2 的这个 phpstorm 插件上看到“twig side”上的 vars 自动完成提示,那就太好了:
http://symfony2-plugin.espend.de/languages/twig/index.html#phptypes
基本上在我的 twig View 中,我使用注释声明 var“类型”,然后我会在我的模型 (farmaco) 上看到提示:
{# farmaco \Farmaco #}
{% farmaco. %} <-- I would see hints -->
注意:我没有使用 Symfony,但是我安装了 symfony 插件,但自动完成功能对我的 laravel 项目的 Twig 文件不起作用。
最佳答案
您似乎缺少 @var
注释。
正确的形式是:
{# @var foo \FooService #}
{{ foo. }} <!-- press CTRL+SPACE for typehints -->
我在一个非 symfony 项目中使用它没有问题。请务必检查项目是否实际启用了 symfony 插件(默认情况下未启用)并在启用后重新启动 IDE。
还要确保类型提示指向 fully qualified class name .
作为旁注,我还没有(还)让这个用于属性,即 foo.bar.*
当通过魔法访问属性时(使用 __get
)。对于这些实例,属性需要放入它自己的变量中:
{# @var foo \FooService #}
{{ foo.bar. }} <!-- no typehints for bar :-( -->
{% set bar = foo.bar %}
{# @var bar \BarService #}
{{ bar. }} <!-- press CTRL+SPACE for typehints :-) -->
关于PHPStorm自动完成 Twig 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26274704/