在极其简单的PhpStorm示例中修复自动完成

在极其简单的PhpStorm示例中修复自动完成,phpstorm,Phpstorm,我刚刚下载并安装了PhpStorm 7.1,我想知道为什么它不理解以下代码: <?php /** * Class Whatever */ class Whatever { /** * Just prints "Hello." */ function foo() { echo "Hello.\n"; } } $test = new Whatever(); $test->foo(); ?> 它似乎忽略了where类定义 当键入$t

我刚刚下载并安装了PhpStorm 7.1,我想知道为什么它不理解以下代码:

<?php


/**
 * Class Whatever
 */
class Whatever {

  /**
   * Just prints "Hello."
   */
  function foo() {
    echo "Hello.\n";
  }
}


$test = new Whatever();

$test->foo();

?>
它似乎忽略了where类定义

当键入$this->并按Ctrl+Enter时,它表示没有建议,而在键入new之后,Whatever类永远不在建议列表中。在其他一些情况下,我目前无法复制它,比如说未定义的类定义:Whateer

我做错了什么

使现代化 请参见下面的屏幕截图。输入$test->foo后,请注意左下角的消息

另外,当我按下Ctrl+B时,会发生以下情况:


但是,在new Anwhere中使用插入符号按Ctrl+B可以找到该类,并且在$test本身上使用Ctrl+B时同样有效。。。奇怪…

问题是我的测试文件在项目文件夹外。正如LazyOne所指出的,PhpStorm就是这样工作的。将文件移动到项目目录解决了这个问题


另请参见对问题的评论。

我做错了什么?可能什么都没有。1您是否尝试过文件|使缓存无效。。。然后重新启动?这是你项目中唯一的一个类吗?3有第三方插件吗?也许他们中的一个在干涉。我不知道这样的基本代码示例还有什么错误,它在我的设置中适用于非常复杂的类。我只是尝试了一下,没有改进。2是的,我还没有建立任何真正的项目,因为我只是想熟悉PhpStorm。我刚刚创建了一个空项目,创建了test.php,并在项目设置中使用了代码样式规则,仅此而已3没有配置/使用插件。我刚刚添加了说明问题的屏幕截图。第一个屏幕截图-消息正确-您的类中没有字段foo。我绝对不能在我的7.1.3工作设置中复制这一点。你能压缩整个项目,上传和分享链接吗?也许是你的项目配置?我还建议您尝试使用v8 EAP stage ATM—也许对您更合适:是的—PhpStorm的工作方式一直都是这样的,因为v0.x—如果文件不在项目范围内,而不是通过PHP包含路径或目录引用,则会显示有效代码的错误。不确定这是一个bug还是什么——但即使有人抱怨,也没有人抱怨过——这个问题被列为不重要的待办事项。