我在一家员工都使用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来生成在两者中都有效的文档。
答案 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 */
答案 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顺序这一事实造成了很多痛苦。