使用 PhpStorm 8 在 Yii 应用程序中查找方法实现的问题


Problems with finding implementations of methods in Yii application with PhpStorm 8

我正在使用"PHPStorm"IDE(版本8.0.2)开发一个带有Yii 1.1的应用程序。虽然它设法找到基本 Yii 方法的声明,但它找不到在应用程序模型中声明的方法的实现。

当我尝试单击一个功能并选择"转到...实现",则无法发现它们。

其中一个例子:

我右键单击视图中的方法实现,然后选择"转到声明"。IDE 设法正确地将我定向到模型中的方法声明。同时,当我尝试查找完全相同方法的实现时,IDE 无法找到它们。

我做错了什么吗?

我正在使用 NetBeans,据我所知,转到声明取决于两件事 1) 将框架文件添加到项目包括中,以防文件在外面 2) 转到声明将基于您定义变量的方式工作,其中一些在神奇方法的情况下可能根本不起作用。

但是您始终可以使用一些注释来声明变量的类,例如:

$post=Post::model()->find();
$post->save();

如果我单击save()则可能无法正常工作,具体取决于 ::model() 和 find() 返回的内容。但我可以用评论声明$post为帖子:

/* @var $post Post */

这将使 IDE 知道$post属于 Post 类型。然后基于此,它将知道它扩展了CActiveRecord因此它将找到save()方法并转到声明将起作用。

始终确保:

  • 函数返回一个实例化对象,例如:$post=Post;
  • 如果没有,至少在注释@return指定它们返回的对象类型
  • 最后,如果没有,您可以随时使用上面的评论方式