Netbeans中的变量类型提示(PHP)

rr.*_*rr. 80 php phpdoc php-ide

只是好奇是否有一种方法可以为netbeans提供常规变量的类型提示,以便intellisense选择它.我知道你可以为类属性,函数参数,返回类型等做这些,但我无法弄清楚如何为常规变量做到这一点.在你有一个可以返回不同对象类型的方法(比如服务定位器)的情况下,它会非常有用.

像这样的东西:

/**
 * @var Some_Service $someService
 */
$someService = ServiceLocator::locate('someService');
Run Code Online (Sandbox Code Playgroud)

在之后使用$ someService的情况下,netbeans将提供Some_Service类中定义的所有可用方法.

joh*_*nes 177

您只需要一条线:

/* @var $varName Type_Name */
Run Code Online (Sandbox Code Playgroud)

请参阅NetBeans PHP博客中的这篇文章:https://blogs.oracle.com/netbeansphp/entry/defining_a_variable_type_in

  • 这里的关键似乎是单个星号/*而不是/**.至少在8.0版本中.谢谢. (15认同)
  • 请记住,您可以在要记录的变量上方的行上键入`vdoc`然后点击`Tab`,它将作为一个宏来自动创建上面的doc块@johannes帖子. (6认同)
  • @shadyyx 在这种情况下,您应该使用`/** @var Type_Name */`,请参阅此 [post](http://stackoverflow.com/a/9004669/1356425)? (2认同)

ouc*_*cil 23

我知道这是一个较老的问题,但我正在为Eclipse/Zend Studio寻找类似的答案,这也解决了它.

**请注意,它必须在一行中以明确的方式打开和关闭...

/* @var $varName Type_Name */
Run Code Online (Sandbox Code Playgroud)

没有其他格式是否......

/**
 * @var $varName Type_Name
 */ 
Run Code Online (Sandbox Code Playgroud)

要么...

// @var $varName Type_Name
Run Code Online (Sandbox Code Playgroud)

似乎工作.希望能帮助别人.


小智 8

你想要记录那些讨厌的魔术变量吗?(我做了;这个问题目前在谷歌排名最高.我希望这有助于某人!)

@property标签可以让你记录魔术 PHP变量-那些使用来实现__get()__set().标签应该在类定义之前的文档中使用:

/**
 * Class Contact
 * @property string $firstName
 * @property string $lastName
 */
class Contact extends Model {
   ...
Run Code Online (Sandbox Code Playgroud)

此符号触发自动完成,在Netbeans 8.1和PhpStorm 2016.1中进行测试.

在此输入图像描述


ryb*_*111 5

根据此错误报告, NetBeans 9中的语法将发生变化:

/* @var $variable VarType */    // vdoc1 (legacy syntax)
/** @var VarType $variable */   // vdoc (new syntax)
Run Code Online (Sandbox Code Playgroud)

另外,值得一提的是,您可以附加[]到类名来指示对象数组:

/* @var $foos Foo[] */
$foos = // ...

foreach ($foos as $foo) {
    // $foo will be hinted as Foo here
}
Run Code Online (Sandbox Code Playgroud)

并且不要忘记你的use陈述,例如use Foo;