因此,如果我有一个函数并且在PHPDoc中我指定它将返回一个SqsProcessResult
对象,那么我调用一个函数来创建一个新的对象但该函数的PHPDoc说返回类型为Object
(因为它是一个通用的工厂函数)PhpStorm会抛出橙色警告。
我可以注释或以其他方式告诉PhpStorm返回类型为SqsProcessResult
吗?
答案 0 :(得分:8)
是的,你可以..但由于问题的性质,它可能不是最干净/优雅的解决方案(至少这是别人可能会说的)。
几个选项:
#1。只需取消该行的检查。
Suppress for statement
选项 - 将在命令行上方添加一个新的内联PHPDoc注释,指示PhpStorm忽略下一行中的特定检查。会是这样的:
/** @noinspection PhpIncompatibleReturnTypeInspection */
return \Yii::createObject(...);
#2。使用一些可以在其中键入提示的中间变量。
添加类似这样的内容而不是现有的单行:
/** @var SqsProcessResult $res */
$res = \Yii::createObject(...);
return $res;
这个主要可以用在较长的方法中,这些变量(泛型Object
)将在函数体的开头/中间创建,然后再使用。
#3。使用.metadata功能播放并为实际\Yii::createObject()
提供解析逻辑(因此IDE会根据输入参数选择正确的类)。
https://confluence.jetbrains.com/display/PhpStorm/PhpStorm+Advanced+Metadata
这是相当多的工具:Laravel的IDE助手,Symfony助手,DI Container助手等