我可以告诉PhpStorm函数的返回类型是什么吗?

问题描述:

enter image description here我可以告诉PhpStorm函数的返回类型是什么吗?

所以,如果我有一个函数,并在PHPDoc的我指定它会返回一个SqsProcessResult对象,然后调用一个函数来创建这些对象的新的,但该功能的PHPDoc的说的Object返回类型(因为它是一个通用的工厂功能)PhpStorm发出橙色警告。

我可以注释或以其他方式告诉PhpStorm返回类型将是SqsProcessResult

是的,你可以...但由于问题的性质,它可能不是最干净/优雅的解决方案(至少这是别人可能会说的)。

几个选项:


#1。只要抑制这条线的检查。在高亮区域

  • 将插入符号,按Alt + Enter键(或通过“灯泡”图标会得到相同的菜单)
  • 找到最适合的入门..并按箭头向右键(或鼠标点击这个小三角形图标)展开子菜单
  • 一旦出现 - 选择Suppress for statement选项 - 一个新的内嵌PHPDoc注释将被添加到正上方,指示PhpStorm忽略下一行中的特定检测。

会是这样的:

/** @noinspection PhpIncompatibleReturnTypeInspection */ 
return \Yii::createObject(...); 
  • 优点:无论从IDE侧警告
  • 缺点:额外PHPDoc的评论,以满足IDE(这是需要考虑的情况下)

#2。使用一些中间变量,您可以键入提示。

添加这样的事情,而不是现有的单行:

/** @var SqsProcessResult $res */ 
$res = \Yii::createObject(...); 
return $res; 
  • 优点:无抑制评论
  • 缺点:额外的变量(现在仍然额外PHPDoc的注释)基本上没有理由

这一个主要可以用于更长的方法,其中这样的变量(通用Object)将在函数体的开始/中间创建,然后稍后使用。


#3。玩.metadata功能,并提供实际\Yii::createObject()的解析逻辑(所以IDE根据输入参数选择合适的类)。

https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata

这是怎么了不少工具工作:IDE帮手Laravel,Symfony的帮手,DI容器佣工等

+1

谢谢!第一种选择是我正在寻找的,以避免纯粹为代码检查创建变量。仅供参考,注解为'/ ** @noinspection PhpIncompatibleReturnTypeInspection * /' –

+1

检查更新的答案 - 选项#3。如果做得好 - 不需要评论(但你最好在Yii专用论坛上提问 - 他们应该有一个解决方案,我会假设)。不是这一个...但是在这些行中:http://yiifeed.com/news?id=72 – LazyOne