Eclipse PDT +代码完成根本不起作用

时间:2013-06-23 17:54:03

标签: php zend-framework eclipse-pdt

我想开始一个新的Zend项目,目前我正面临一些关于Eclipse PDT的问题...我的问题是,Eclipse for PHP中的代码完成根本不起作用。

我尝试了很多不同的教程等,例如制作一个新项目并导入文件;制作新工作区并在那里导入项目;几乎所有可能的构建路径设置和库导入组合;删除.metadata中的几个文件(如果你谷歌的话,你会发现很多像这样的教程),但没有任何效果。

[编辑]还设置了PHPNature(感谢tranisstor):

<natures>
    <nature>org.eclipse.php.core.PHPNature</nature>
    <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
</natures>

(如果只设置了PHPNature,它也不起作用,另外没有其他功能)

[/编辑]

详细问题:我创建了一个新的Zend项目,并尝试在IndexController.indexAction()中开始编码。我做的第一件事:我输入$this->,但没有代码完成......我想也许我需要添加Zend库,我做了。当我点击Zend_Controller_Action中的class IndexController extends Zend_Controller_Action时,我可以看到Zend_Controller_Action的文档,我也可以按 F3 并显示相应的文件...其中意味着,Zend已成功添加为库。 我也试过 Ctrl + Space ,但没有任何反应。顺便说一下,像isset()这样的标准PHP函数也不会出现在代码完成中

有人知道如何解决这个问题吗?我正在使用Eclipse Juno,Eclipse PDT 3和Zend Framework 1.x(不完全确切,但它不是ZF2,如果我打开http://localhost它会很好。

我很感激任何帮助

10 个答案:

答案 0 :(得分:30)

将eclipse升级到Kepler时遇到了同样的问题。以下对我有用:

删除workspace / .metadata / .plugins / org.eclipse.dltk.core.index.sql.h2下的文件

原因是工作区旧DLTK索引不符合新版本,需要重建。启动eclipse并重新生成DLTK索引。

在此之后,代码完成再次为我工作。

答案 1 :(得分:4)

我觉得你,我不得不经常处理这个问题,并且提到的 .project 文件修改并不能解决问题。 是什么帮助了我:

编辑 .buildpath 文件并添加

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

我的完整构建文件可能看起来很糟糕。像这样:

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

我还将包含php文件的文件夹添加到构建和包含路径(人民币超过项目),但我不认为这是必要的,最重要的部分是修改.buildpath文件我

希望有帮助...

答案 2 :(得分:2)

标准解决方案(Eclipse forum)对我不起作用。解决这个问题的原因如下:

  1. 转到我的项目的属性(在PHP资源管理器中右键单击,然后单击属性),
  2. 选择PHP构建路径/&#34;添加文件夹&#34;
  3. 在那里我勾选了/选择了我项目的主文件夹。
  4. DLTK数据库刷新需要一段时间(它可能会阻塞你的机器几分钟,耐心等待)但是它开始运转良好。

答案 3 :(得分:1)

删除工作区/ .metadata / .plugins / org.eclipse.dltk.core.index.sql.h2 / *。它应该有用。

希望它有所帮助!

答案 4 :(得分:1)

我认为这是最好的方法:

右键单击项目资源管理器中的项目»配置»添加PHP支持...

enter image description here

答案 5 :(得分:0)

也许您需要编辑.project-File并添加“PHP nature”标记。有关详细信息,请参阅this thread。我曾经在svn版本控制下放置一个项目之后遇到过这个问题,这似乎是一个常见的问题。

答案 6 :(得分:0)

我在eclipse forum找到了解决方案。降级到PDT 3.1.2解决了这个问题。

此致 马立克

答案 7 :(得分:0)

在此页面上尝试了其他可能的解决方案之后,我设法使用Eclipse Juno中最新的Dynamic Languages Toolkit在PDT 3.2中完成代码完成。

Juno默认安装DLTK 4.0版,所以我从这里下载了DLTK 5.0:http://download.eclipse.org/technology/dltk/downloads/drops/R5.0/R-5.0-201306060709/。使用核心框架&gt; EMF &gt; 运行时版本链接,下载zip文件,因此您需要进行本地安装: 在Eclipse中选择帮助&gt; 安装新软件&gt; 添加&gt; 存档&gt;导航到zip文件&gt;在名称框中键入 DLTK 并确认。

使用Eclipse的安装新软件从PDT存储库获取PDT 3.2(如果尚未安装):http://download.eclipse.org/tools/pdt/updates/3.2/release

选项2:在我尝试上一个方法之前,我安装了PDT 3.1,这是我从Juno更新站点(而不是PDT存储库)获得的: 安装新软件&gt; http://download.eclipse.org/releases/juno。代码完成工作在3.1,所以这是另一种可能性。

答案 8 :(得分:0)

我有类似的问题,但只涉及一个PHP文件。然后我发现我使用以下语法来初始化方法中的变量:

$rule = ($fullValidation)?(new StartTimeRule()):(new NullRule());

问题似乎是使用内联条件。代码工作但显然打破了一些Eclipse功能,如F3命令,自动完成,大纲视图等。我可能是错的,但我认为这是DTLK索引器的错误。

我使用标准if语句更改了该行,而不是内联条件,并且所有功能现在都可以再次使用。

希望这有帮助!

答案 9 :(得分:0)

  1. 下载ZF2并将其放入您的perefered位置(~Frameworks / ZF2)
  2. Eclipse:Window&gt;偏好&gt; PHP&gt; Libraries =按“新建” - 按钮,添加名称
  3. 选择添加的项目,然后单击“添加外部文件夹”-Button。选择ZF2目的地
  4. 请确保您的项目是“PHP项目”(请参阅​​:标记项目基础文件夹,单击菜单中的项目&gt; Project Natures并选择PHP项目。
  5. 这将重建您的项目,如果没有,也选择项目&gt;建立项目。
  6. 现在所有人都应该像魅力一样(在Kepler Service Release 2上)