PhpStorm类型识别/建议

水牛

我有什么办法让PhpStorm(2016.1)识别"new X()"范围之外的类型

SomeClass.php:

class SomeClass
{    
  public function DoMagic()
  {
    echo "doing magic";
  }

}

DummyClass.php:

class DummyClass
{
  protected $mParamsList;

  function __construct()
  {
    $this->mParamsList = array();
  }

  public function InitParamsList()
  {
    $this->mParamsList[] = new SomeClass();
  }

  public function GetParamsList()
  {
    return $this->mParamsList;
  }

}

UserClass.php-没有建议:

class UserClass
{
  public function DoMagic()
  {

    $dummy2 = new DummyClass();

    $params = $dummy2->GetParamsList(); 

    foreach ($params as $param)
    {
      $param-> * nothing happens *
    }
  }

}
?>

我发现添加此hack可以工作,但是使用它却令人沮丧:

if(false){$ param = new SomeClass(); }

因此,完整的工作示例将是:

class UserClass
{
  public function DoMagic()
  {
    $dummy = new DummyClass();

    $params = $dummy->GetParamsList(); 

    foreach ($params as $param)
    {
      if (false)
      {
        $param = new SomeClass();
      }

      $param-> * suggestions pop up * 
    }
  }

}
萨利耶里

您应该在函数之前使用doc类型的注释:

/**
 * @return \MyObject
 */
public function GetMyObject()
{
    return new MyObject();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章