Netbeans和PHPStorm中的变量类型提示

TFe*_*nis 6 php netbeans phpdoc type-hinting phpstorm

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

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

/** @var MyAwesomeClass $theObject */
$theObject = $orm->getMyAwesomeObject();
Run Code Online (Sandbox Code Playgroud)

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

/**
 * @param MyAwesomeClass $awesomeObjectArgument
 * @param boolean $booleanArgumentsAreSilly
 */
Run Code Online (Sandbox Code Playgroud)

但是netbeans就是这样的

/** @var $theObject \Full\Freeking\Namespace\With\Leading\Backslash\MyAwesomeClass */
Run Code Online (Sandbox Code Playgroud)

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

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

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

Laz*_*One 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 */

在此输入图像描述

  • *"有没有办法更改PHPStorm的模板,所以它自动完成自动填充netbeans的方式?"* - 所有可用于自定义模板的都位于`设置| 文件和代码模板`.如果您的情况没有 - 那么它就不可用了.您可以创建自定义实时模板并将其用于制作此类PHPDoc注释.**在任何情况下:**PhpStorm如下PHPDoc的标准,它不PhpStorm的问题,一些其他IDE的工作方式不同(尤其是因为PhpStorm支持,"其他"方式). (2认同)
  • 我注意到实际上没有"PHPDoc标准"关于使用`@ var`来表示"局部变量"的数据类型...... IDE中的这种做法是"在野外"开发的,因此实现上的差异.phpDocumentor团队正在使用PHP-FIG将这个用例包含在其建议的PSR-5标准中,用于PHP文档语法(https://github.com/php-fig/fig-standards/pull/169),尽管它指定了一个新的`@type`标签来取代`@ var`. (2认同)