PhpStorm文档提示方法的指定结果
PhpStorm是否可以理解具有指定参数的方法的结果,或者当从特定类调用时,是否可以知道在PHPDoc中定义的结果 例如:PhpStorm文档提示方法的指定结果,php,phpstorm,phpdoc,type-hinting,Php,Phpstorm,Phpdoc,Type Hinting,PhpStorm是否可以理解具有指定参数的方法的结果,或者当从特定类调用时,是否可以知道在PHPDoc中定义的结果 例如: class demo { public static function getInstance($className) { return $className::Instance(); } } class someClass { public function Instance() { return new s
class demo {
public static function getInstance($className)
{
return $className::Instance();
}
}
class someClass {
public function Instance() {
return new someClass();
}
}
class otherClass {
public function Instance() {
return new otherClass();
}
}
demo::getInstance('someClass'); // PHPstorm should understand this would return someClass
demo::getInstance('otherClass'); // PHPstorm should understand this would return otherClass
现在我的PhpStorm说
在字符串中找不到方法getInstance
对于代码提示,我希望PhpStorm了解基于参数值返回的类的类型。将这些数据放在PHPDoc或类似的东西中是可以的,只是请不要添加其他方法。首先,静态调用非静态方法 其次,您可以注意返回类型,如下所示:
/**
* @return someClass|otherClass
*/
public static function getInstance($className)
{
return $className::Instance();
}
首先,静态调用非静态方法 其次,您可以注意返回类型,如下所示:
/**
* @return someClass|otherClass
*/
public static function getInstance($className)
{
return $className::Instance();
}
我知道它应该是静态的,这只是一个例子。这在我的真实代码中是正确的。如果我这样设置返回类型,它也可以从其他类而不是实际返回的类生成代码提示。虽然没有明确说明,但我认为问题可能是,是否有一种方法可以让PhpStorm知道它返回的是什么类型的类,不必在
@return
语句中列出所有可能性,因此如果我有一个类Foo
,它有函数Instance()
,就可以demo::getInstance('Foo')代码>PhpStorm是否知道Foo未声明为返回类型?@gabe3886,否。PhpStorm只能提出所有变体。PhpStorm生成自动phpdoc,就像我的答案一样(枚举所有可能的返回类型)。我知道它应该是静态的,这只是一个例子。这在我的真实代码中是正确的。如果我这样设置返回类型,它也可以从其他类而不是实际返回的类生成代码提示。虽然没有明确说明,但我认为问题可能是,是否有一种方法可以让PhpStorm知道它返回的是什么类型的类,不必在@return
语句中列出所有可能性,因此如果我有一个类Foo
,它有函数Instance()
,就可以demo::getInstance('Foo')代码>PhpStorm是否知道Foo未声明为返回类型?@gabe3886,否。PhpStorm只能提出所有变体。PhpStorm生成与我的答案类似的自动phpdoc(枚举所有可能的返回类型)。如果需要根据传递的参数(某种类型的工厂/容器)返回方法类型,请看——如果需要根据传递的参数(某种类型的工厂/容器)返回方法类型,Laravel IDE Helper就是这样工作的(例如)--看--这就是Laravel IDE帮助程序的工作原理(例如)