PHPStorm自动完成树枝变种

Fel*_*uni 24 php phpstorm laravel

我在一个php项目中使用PHPStorm 8.1作为IDE(laravel 4.1项目在视图侧有twig)

很高兴在"twig side"上对变量进行自动完成提示,就像你可以在这个phpstorm插件中看到symfony2:http://symfony2-plugin.espend.de/languages/twig/index.html#phptypes

基本上在我的twig视图中,我使用注释声明var"type",然后我会在我的模型(farmaco)上看到提示:

   {# farmaco \Farmaco #}
   {% farmaco.  %} <-- I would see hints -->
Run Code Online (Sandbox Code Playgroud)

注意:我没有使用Symfony,但我安装了symfony插件,但自动完成功能对我的laravel项目的twig文件不起作用.

Pot*_*rca 46

你似乎错过了@var注释.正确的形式是:

{# @var foo \FooService #}
{{ foo. }} <!-- press CTRL+SPACE for typehints -->
Run Code Online (Sandbox Code Playgroud)

我让这个非symfony项目没有问题.请务必检查实际为项目启用了symfony插件(默认情况下不是这样),并在启用后重新启动IDE.

还要确保type-hint指向完全限定的类名.


作为旁注,我还没有(还)将其用于属性,即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 :-) -->
Run Code Online (Sandbox Code Playgroud)

  • 现在也适用于 _deep-assoc_ 中的[方法参考](https://github.com/klesun/deep-assoc-completion/issues/165),无论这可能涉及到什么人;) (3认同)
  • 谢谢,终于 var 和 symfony 插件使自动完成工作正常了。关于它们在我的例子中起作用的属性,因为我在模型中使用生成的注释,即: @property string $permalink 它们是由 https://github.com/barryvdh/laravel-ide-helper 自动构建的 (2认同)