17

尽管有些人可能会说,我相信代码完成(又名 Intellisense)是代码编辑器的第二个最佳发明(第一个是语法着色)。它确实使编码更容易,因为我不必担心我是否为函数命名CalculateReportSumsReportSumsCalculate或者只是简单地命名GetReportSums

不幸的是,我还没有找到可以令人满意地为 PHP 实现此功能的代码编辑器。“令人满意”是指“与 Visual Studio for C# 一样好”。

我首选的文本编辑器是 Notepad++,但它只有一个 PHP 的内置函数列表,而且它只有在你按下 Ctrl+SPACE 后才会出现。我也尝试过 Eclipse+PDT,它更好,但仍然经常出现打嗝,有时无缘无故完全失败(没有可用的列表),并且总是仅在我暂停输入时出现(将超时设置为一些小的值会导致列表完全不出现)。

那么 - 那里有更好的东西吗?能够知道当前范围内的所有变量、能够跟随include()s 并在我键入时实时显示列表的东西?

我知道 PHP 是一种动态语言,原则上不可能完美的代码完成(因为你不知道在运行时之前会有哪些变量),但它仍然应该可以在相当好的程度上实现它 - 很多比我目前看到的要好。

补充:添加一些小点 - 我希望 CC 是即时的,就像在 Visual Studio 中一样。我输入一个字符,列表同时显示。我输入另一个字符,列表在我眨眼之前就变成了一半大小。接近零的 CPU 使用率,即时结果(都欢呼缓存之神!)。

另外 - 我很擅长以特殊方式记录我的函数甚至变量。我更喜欢 PHPLint 语法(因为以​​后我可以用它检查我的代码),但其他语法也可以。强迫这样做也有利于你的评论纪律。:)

4

11 回答 11

26

我发现 Netbeans 的代码完成比 Aptana 更好。当我使用 codeigniter 时,Netbeans 会在 Aptana 不会的模型中为我的静态方法编写完整的代码。

自从我发布这篇文章以来,JetBrains 已经发布了 PHPStorm 并拥有你的快速智能感知,以及更好的类型提示。它绝对优于所有其他恕我直言。我已经免费使用 EAP 2.0 几个月了。

于 2009-11-15T20:27:17.770 回答
3

没错,智能感知在像 php 这样的动态类型语言中要复杂得多。考虑例如

  function get_foo($x) {
       return $x ? new abc() : new xyz();
  }

  get_foo(123)->... can your IDE autocomplete here?

不了解 PDT,但 Netbeans 无法处理此问题,并且 phped 需要以特殊方式注释“get_foo”。

我还没有尝试过 Jetbrains 即将推出的 WebIDE ( http://www.jetbrains.com/webide/features/index.html ),但在这方面看起来很有希望(见截图)。

于 2009-11-15T20:58:45.773 回答
2

毫无疑问,使用 NetBeans 非常有用,并且具有良好的智能感知(好吧,不是完美的),但比 Eclipse 更好。

于 2009-11-16T03:22:10.487 回答
2

我向您推荐netbeans .它是免费的。它适用于所有平台,主要适用于编辑 php、jsp、java、css、html,... 适用于 SVN、mercurial,此外,您可以轻松地将其与kenai.com集成...

它有助于 IntelliSense 类型的弹出。

相信我,我将它用于 php 开发,它是我能找到的最适合的 ide...

于 2009-11-27T13:53:47.307 回答
1

我使用 PHPEd ( http://www.nusphere.com/ ),它具有此功能的可行版本。

注意:他们的首页上列出了报价。忽略这个。它已经在明天结束了至少 4 年了。

于 2009-11-15T20:33:58.453 回答
1

我认为你在 Windows 上。在 Windows 中,我通常使用 phpDesigner ( http://www.mpsoftware.dk/phpdesigner.php ),它有很好的 CC。在 linux 中,我使用 geany( http://www.geany.org/ ) 或 vim 两者都有 CC,在后面的情况下,你需要设置它。我发现 Eclipse 太臃肿了,我厌倦了等待它启动。:\

于 2009-11-16T00:03:19.623 回答
1

Kimodo 具有良好的代码完成功能,不仅显示 PHP 中的函数,还显示您在当前上下文中声明的内容。此外,如果您已经正确记录了您的函数或其他任何内容,它也会显示该文档!

于 2009-11-16T03:27:18.330 回答
1

我还没有看到 Zend Studio 5.x 中的自动完成功能。我已经尝试过基于 Eclipse 构建的更高版本,还不如使用 Aptana ......

不幸的是,这意味着要让 Windows 保持 XP 或 2000 的外观,因为 Java GUI(构建 Zend Studio 的那个)在 Win7 Look 中搞砸了,但是对于 Zend 5 的功能来说,这是非常值得的。

它不仅会自动完成已知功能,它还会自动完成您创建的变量/函数,不仅是您当前的文件,而且是任何打开的文件(我认为是打开的项目中的任何文件),并且还会自动建议类项目。

另外,能够在 Zend Studio 内部本地运行以测试部分代码非常棒。如果它可以轻松地让您同时保存到本地文件系统并上传到服务器....(我只是让一个 FTP 程序在后台运行,每 10 分钟将任何更改下载到服务器)。

于 2010-01-07T15:31:08.293 回答
0

http://www.aptana.org/

Code Assist
有助于编写 HTML、CSS、JavaScript、PHP 和 Ruby。支持最新的 HTML5 规范。包括有关主要 Web 浏览器中每个元素的支持级别的信息

于 2009-11-15T20:22:42.087 回答
0

vim。

http://weierophinney.net/matthew/archives/123-Vim-7-code-completion.html

此外,查看推荐的类似问题,我注意到已经有一个很好的问题讨论了使用 vim 代码完成的不同方法。

VIM 中的单词/代码补全

于 2009-11-15T20:28:46.050 回答
0

你可以试试 Zend Studio。

于 2009-11-15T20:30:07.853 回答