4

我想开始一个新的 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,但什么也没发生。顺便说一句,标准的 PHP 函数isset()也不会出现在代码完成中

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

我很感激任何帮助

4

10 回答 10

30

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

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

原因是工作区旧的DLTK索引与新版本不兼容,需要重建。启动eclipse,将重新生成DLTK索引。

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

于 2013-07-31T14:47:08.613 回答
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 文件的修改。

希望有帮助...

于 2013-07-01T10:50:06.007 回答
2

标准解决方案(在Eclipse 论坛上)对我不起作用。解决此问题的原因如下:

  1. 转到我的项目的属性(在 PHP Explorer 中右键单击它,然后是属性),
  2. 选择 PHP 构建路径/“添加文件夹”
  3. 在那里我勾选/选择了我的项目的主文件夹。

刷新 DLTK 数据库需要一段时间(它可能会阻塞您的机器几分钟,请耐心等待),但随后它开始运行良好。

于 2014-05-14T09:37:12.183 回答
1

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

希望能帮助到你!

于 2013-10-09T14:58:41.433 回答
1

我认为这是最好的方法:

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

在此处输入图像描述

于 2016-06-22T16:13:27.747 回答
0

我在eclipse 论坛上找到了一个解决方案。降级到 PDT 3.1.2 解决了这个问题。

问候, 马雷克

于 2013-07-03T16:32:24.517 回答
0
  1. 下载 ZF2 并将其放到您喜欢的位置 (~Frameworks/ZF2)
  2. Eclipse:Window > Preferences > PHP > Libraries = Push“New”-Button,添加名称
  3. 选择添加的项目,然后单击“添加外部文件夹”-按钮。选择您的 ZF2 目的地
  4. 确保您的项目是“PHP 项目”(请参阅​​:标记 Project-Base-Folder,单击菜单中的项目 > 项目性质并选择 PHP 项目。
  5. 这将重建您的项目,如果没有,也选择 Project > build Project。

现在一切都应该像魅力一样工作(在 Kepler Service Release 2 上)

于 2014-05-20T16:40:14.243 回答
0

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

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

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

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

希望这可以帮助!

于 2014-01-14T14:29:44.827 回答
0

也许你需要编辑你的 .project-File 并添加一个“PHP nature”标签。有关更多信息,请参阅此线程。在将项目置于 svn 版本控制下后,我曾经遇到过这个问题,这似乎是一个常见问题。

于 2013-06-23T18:14:34.483 回答
0

在尝试了此页面上的其他可能解决方案后,我设法使用 Eclipse Juno 中的最新动态语言工具包在 PDT 3.2 中完成代码。

Juno 通常默认安装 DLTK 4.0 版,所以我从这里下载了 DLTK 5.0:http: //download.eclipse.org/technology/dltk/downloads/drops/R5.0/R-5.0-201306060709/。使用Core Frameworks > EMF > Runtime Version链接,它会下载一个 zip 文件,因此您需要进行本地安装:在 Eclipse 中,选择Help > Install New Software > Add > Archive > 导航到 zip 文件 >在Name中输入DLTK框并确认。

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

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

于 2013-12-07T15:16:40.437 回答