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

Php Eclipse PDT+;代码完成根本不起作用,php,zend-framework,eclipse-pdt,Php,Zend Framework,Eclipse Pdt,我想开始一个新的Zend项目,目前我面临一些关于EclipsePDT的问题。。。我的问题是,Eclipse for PHP中的代码完成根本不起作用 我尝试了很多不同的教程等,例如制作一个新项目和导入文件;创建一个新的工作区并在那里导入项目;几乎所有可能的构建路径设置和库导入组合;删除.metadata中的几个文件(如果你搜索它,你会发现很多类似的教程),但没有任何效果 [编辑]还设置了PHPNature(感谢Transissor): org.eclipse.php.core.PHPNature

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

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

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


org.eclipse.php.core.PHPNature
org.eclipse.wst.common.project.facet.core.nature
(如果只有PHPNature集合,而没有其他附加项,则它也不起作用)

[/编辑]

具体问题是:我创建了一个新的Zend项目,并尝试在IndexController.indexAction()中开始编码。我做的第一件事是:我输入了
$this->
,但没有完成代码。。。我想也许我需要添加Zend库,我做到了。当我点击
class IndexController extensed Zend\u Controller\u Action
中的
Zend\u Controller\u Action
时,我可以看到
Zend\u Controller\u Action
的文档,我也可以按F3,相应的文件将出现。。。这意味着,Zend已成功添加为库。 我还尝试了Ctrl+Space,但什么也没发生。顺便说一下,像
isset()
这样的标准PHP函数也不会出现在代码完成中

有人知道如何解决这个问题吗?我使用的是EclipseJuno、EclipsePDT3和ZendFramework 1.x(不太清楚,但它不是ZF2,如果我打开
http://localhost


非常感谢您的帮助

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

我感觉到你,我也不得不经常处理此问题,并且提到的.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文件的文件夹添加到build and include path(项目中的RMB)中,但我不认为这是必要的,最重要的部分是对.buildpath文件的修改

希望这对…有帮助。

我找到了解决方案。降级到PDT 3.1.2解决了问题

问候,,
Marek

我在将eclipse升级到开普勒时遇到了同样的问题。以下几点对我起到了作用:

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

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


代码完成在那之后又对我起了作用。

删除workspace/.metadata/.plugins/org.eclipse.dltk.core.index.sql.h2/*。应该可以


希望有帮助!

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

Juno通常默认安装DLTK版本4.0,因此我从这里下载了DLTK 5.0:。使用核心框架EMF运行时版本链接,该链接下载一个zip文件,因此您需要进行本地安装: 在Eclipse中选择帮助安装新软件,然后在名称框中导航到zip文件,键入DLTK并确认

使用Eclipse的安装新软件从PDT存储库获取PDT 3.2(如果尚未安装):

选项2:在尝试前面的方法之前,我安装了PDT 3.1,它是从Juno更新站点(而不是PDT存储库)获得的:
安装新软件>。代码完成在3.1中起作用,因此这是另一种可能性。

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

$rule = ($fullValidation)?(new StartTimeRule()):(new NullRule());
问题似乎在于内联条件的使用。代码正常工作,但显然破坏了Eclipse的一些功能,如F3命令、自动完成、大纲视图等。我可能错了,但我认为这是DTLK索引器的一个缺陷

我用一个标准的if语句(而不是内联条件)更改了这一行,现在所有的特性都可以再次工作了

希望这能有所帮助!

标准解决方案(at)对我不起作用。解决此问题的方法如下:

  • 转到我的项目的属性(在PHP资源管理器中右键单击它,然后单击属性)
  • 选择PHP构建路径/“添加文件夹”
  • 在那里,我勾选/选择了我的项目的主文件夹
  • 刷新DLTK数据库需要一段时间(耐心等待,它可能会阻塞您的机器几分钟),但随后它开始工作得很好

  • 下载ZF2并将其放到您的指定位置(~Frameworks/ZF2)
  • Eclipse:Window>Preferences>PHP>Libraries=按“新建”按钮,添加名称
  • 选择添加的项目并单击“添加外部文件夹”-按钮。选择ZF2目的地
  • 请确保,您的项目是“PHP项目”(请参阅:标记项目基础文件夹,单击菜单>项目性质中的项目,然后选择PHP项目)
  • 这将重建您的项目,如果没有,请选择Project>build Project

  • 现在,一切都应该像一个符咒一样工作(在开普勒服务发布2上)

    我认为这是最好的方式:

    右键单击项目中的项目
    $rule = ($fullValidation)?(new StartTimeRule()):(new NullRule());