首页 > phpstorm中使用phpdoc进行返回值跟踪,遇到命名空间的问题!

phpstorm中使用phpdoc进行返回值跟踪,遇到命名空间的问题!

在PhpStorm 2016.1中使用1个thinkphp的项目,thinkphp有个M($table)函数,会根据传入的表名初始化thinkphp的Model基类(Think\Model),并且把表名作为参数使用。在系统的App文件夹中调用这个函数,为了让任何使用M()方法的地方都能被IDE跟踪到Think\Model并补全和跟踪这个类下面的方法,我使用了PHPDoc进行说明,代码入下:

/**
* @param string $name Model
* @param string $tablePrefix 
* @param mixed $connection 
* @return \Think\Model
*/

问题是,当在调用这个M()方法时,如果调用位置不在某个命名空间下,IDE都能够自动识别到这个类并补全和跟踪;但是一旦代码在某个命名空间下,例如

namespace Home\Controller;
class WeixinController extends HomeController
{
    public function index(){
    $test=M();//这样调用的时候,PhpStorm无法跟踪到M方法要实例化的类
    }
}

只要包含命名空间下使用M()方法,PhpStorm就无法跟踪到M对应的类。
但是只要当前文件不包含命名空间,M()方法对应的\Think\Model类就能够被跟踪到。
有谁知道如何解决吗?


你可以alt+回车补全一下,追踪不了ps应该会标黄的啊,你用的是M函数,不是M类

【热门文章】
【热门文章】