24

我有带有 PDT 的 Eclipse 3.3.2 进行 PHP 开发。我创建的所有项目,甚至 SVN 项目都有代码完成。现在我刚刚打开了另一个 SVN 项目,它没有代码完成或 PHP 模板(CTRL-space 在该项目中没有任何作用)。但是,我可以打开其他项目和代码完成所有工作。

为什么代码完成和模板仅在一个项目中“关闭”,我该如何重新打开它?

4

17 回答 17

43

也许 Eclipse 不理解该项目具有“PHP 特性”。尝试比较两个项目的 .project 文件以查找差异。它应该包含以下内容:

 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>

.project 文件将位于项目目录下的工作区中。

于 2008-10-07T08:29:17.033 回答
6

在你的项目中寻找文件 .buildpath ......把这一行放在标签之间:

<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/>

保存并重新启动eclipse。现在一切都应该没问题...这对我有用。:)

于 2009-05-22T11:05:27.790 回答
5

谢谢!我花了一整天的时间来弄清楚为什么我没有代码完成......

问题是,如果您创建一个 SVN 项目,.project 是一个没有代码完成参考的基本文件。您必须创建一个基本的 PHP 项目并比较两个文件并替换 SVN 项目中缺少的部分之一。

现在我对项目中的每个文件都有代码完成,即使是 Zend Framework 库

于 2008-10-16T16:00:37.777 回答
5

只需在 .project 文件中添加一行,然后重新启动 eclipse 即可获得代码完成:它说的位置

---
 <natures>
 </natures>
---

改变后必须是

---
 <natures>
  <nature>org.eclipse.php.core.PHPNature</nature>
 </natures>
---

应该这样做。

于 2010-01-20T09:15:56.107 回答
4

@Guido PHPNature 没有解决这个问题。

@Edward Tanguay 是的,那是因为当您创建新的 PHP 项目时,eclipse 添加了 .buildpath 文件

<?xml version="1.0" encoding="UTF-8"?><buildpath>
<buildpathentry kind="src" path=""/>
<buildpathentry kind="con" path="org.eclipse.php.core.LANGUAGE"/></buildpath>

当您导入现有项目时,eclipse 不会生成 .buildpath 文件,但您可以手动添加它或使用现有源创建新的 PHP 项目(您可以在向导中选择)。

于 2011-03-18T09:17:03.917 回答
3

我有时也有同样的问题。对我来说,它可以使用“Project”->“Clean”重建 PHP 项目。

于 2008-10-07T11:12:49.607 回答
2

如果您遇到此问题,请按照以下步骤操作:

  • 在项目树中选择“PHP 包含路径”
  • 右键单击它,然后单击“构建路径>配置构建路径”
  • 在打开的窗口中,添加您要构建的文件夹,以便它可以进行代码辅助。

就是这样:)我希望它能解决你的问题,我解决了我的问题:)

于 2010-11-07T17:27:56.950 回答
1

确保文件使用“PHP 编辑器”打开。右键单击该文件,然后选择打开方式以选择正确的编辑器。

如果事实证明您一直在使用错误的编辑器,您可以在Preferences » General » Content Types下更改关联

于 2008-10-07T08:54:12.460 回答
1

右键单击编辑屏幕,转到 Java -> Editor -> Content Assist -> Advanced ...选择相应的提案

于 2009-03-11T19:35:42.567 回答
1

注意力

除了已经提到的使整个自动完成帮助工作的解决方案之外,还有另一个怪癖:它可能未启用。

转到 Window > Properties,然后转到 PHP > Editor > Code Assist(JAVA 有类似的选项)并设置“启用自动激活”,最好有一个您认为合适的延迟(0 毫秒)。如果您对程序突然决定在没有提示的情况下为您做事(并且做错了)感到困扰,请取消选择“自动插入单个提案”,您应该会没事的。

于 2010-08-16T13:21:42.957 回答
0

我有时注意到,当您在 Eclipse 中从 svn 签出项目时(颠覆或 subscipe“签出项目为”),即使您将其签出为 php 项目,它也会删除 .project 文件,或者它将是一个通用文件项目。我发现只需进入该目录并删除 .project .settings/ 和 .cach/

然后创建一个新的 php 项目并指向您签出文件的目录。你应该有代码完成和 svn 应该链接到你的 repo。

于 2008-10-07T14:36:10.337 回答
0

我遇到了构建路径为空的问题,因此我尝试编辑的任何文件都没有代码完成。确保正确设置构建路径,尤其是在从工作区以外的其他位置链接源代码时。

例如 apache htdocs 文件夹。

于 2008-11-28T22:13:56.710 回答
0

我通过启用完整的 C/C++ 索引器(Windows-> 属性 -> C/C++ -> 索引器)解决了这个问题,还点击了单选按钮“使用活动按钮配置”。之后清理并构建所有内容。

这适用于 Eclipse CDT 3.4

于 2009-12-11T18:07:32.120 回答
0

如果您来这里是在 php eclipse 中寻找代码补全不起作用,请确保您的项目作为 php 项目被支持。右键单击项目,然后转到配置 -> 添加 php 支持。如果您有正确的代码辅助设置,它应该可以立即工作。有时像我这样的新手会调整项目或启动项目时干净而不是 php,所以 eclipse 不知道如何处理项目。

于 2010-03-03T19:21:43.180 回答
0

我必须在 PHP Explorer 中右键单击该项目,转到“PHP Build Path”。这是空的。我单击“添加文件夹”,选中项目根文件夹旁边的复选框,然后单击“确定”,然后再次单击“确定”。

在那之后,代码完成似乎工作了。如果你问我,应该开箱即用,但无论如何。

于 2011-02-22T10:33:02.480 回答
0

检查项目的库。可能是您包含了两个这样的 jar 文件,其中相同的类可用,或者说代码中的一个类可以在两个 jar 文件中引用。在这种情况下,eclipse 也会停止辅助代码,因为它完全被混淆了。

更好的检查方法是转到辅助不起作用的文件并在其中注释所有导入,而不是逐个添加导入并在每次导入时检查代码辅助是否正常工作。您可以轻松找到具有重复引用的类.

于 2011-04-27T11:52:23.227 回答
-1

一种解决方案可能是包含一个需要所有 PHP 类的虚拟 php 文件。这样 PHP 解析器也能识别这些类。示例虚拟文件:

if(false) {
     require_once 'class/one.php';
     require_once 'class/two.php';
     require_once 'class/three.php';
}
于 2008-10-07T11:50:34.337 回答