Netbeans和PHPStorm中的变量类型提示

时间:2014-07-23 08:36:31

标签: php netbeans phpstorm phpdoc type-hinting

我在一家员工都使用PHPStorm和Netbeans 8的公司工作。在我们最近开始为我们的代码添加更多类型提示之前,我们一直都很好。

在PHPStorm中,正确使用类型提示的方法就像这样

/** @var MyAwesomeClass $theObject */
$theObject = $orm->getMyAwesomeObject();

这是有道理的,因为记录函数的正确方法是

/**
 * @param MyAwesomeClass $awesomeObjectArgument
 * @param boolean $booleanArgumentsAreSilly
 */

但netbeans的工作原理如下

/** @var $theObject \Full\Freeking\Namespace\With\Leading\Backslash\MyAwesomeClass */

这是一个问题,因为参数的顺序(对@var表示法)是相反的,而Netbeans使用PHPStorm不支持​​的前导斜杠。

有没有人知道如何配置其中一个IDE以使用相同的标准,因为目前只有一半的代码具有可用的自动完成功能。对我来说,Netbeans中的实现似乎是不必要的,并且与PHPDocs标准(基于@param表示法)相冲突。

更新:我错了,PHPStorm实际上与Netbeans符号兼容,但不是相反。意思是我的问题没有完全解决。我仍然需要找到一种方法来配置两个IDE来生成在两者中都有效的文档。

2 个答案:

答案 0 :(得分:6)

  

这是一个问题,因为参数的顺序(对@var表示法)是相反的,而Netbeans使用PHPStorm不支持​​的前导斜杠

这不是真的。

1。 PhpStorm支持这两个订单(@var [type] [variable]以及@var [variable] [type]

2. PhpStorm支持PHPDoc注释(/** @var ...)以及普通块注释(/* @var ...

3. PhpStorm支持FQN - 这很好用:/** @var $theObject \Full\Namespace\MyAwesomeClass */

enter image description here

答案 1 :(得分:1)

尽管ashazg断言没有类型提示的PHPDoc标准,但http://phpdoc.org/docs/latest/references/phpdoc/tags/var.html的官方文档确实说明typehint应该在变量名之前,并且在文档中没有提到这个命令只是一个建议,任何人都可以使用他们自己的订单。

此外,这种做法与大多数其他强类型语言一致,例如Java(public int speed)或C(int speed)。因此,Netbeans不支持PHPDoc文档中正确的typehint顺序这一事实造成了很多痛苦。