如何使用eclipse查看php函数源代码

Posted

技术标签:

【中文标题】如何使用eclipse查看php函数源代码【英文标题】:how to check php function source code using eclipse 【发布时间】:2018-10-02 22:12:24 【问题描述】:

我很好奇某些 php 函数是如何在内部实现的。例如array_values()

所以在 Eclipse 中,我在函数名称上control click,这将我带到了一个包含函数原型定义但不包含内部源代码的页面。

有没有什么办法可以用eclipse查看php函数的内部实现? (函数是用php还是c写的)

如果用eclipse看不到php源代码,那么有没有人有什么好的攻略搜索php source code on github呢?

【问题讨论】:

array_values是一个内部函数,用C写的(github.com/php/php-src/blob/…) 嗨@Karkouch,感谢您的评论。你介意我问一下,什么是最好的搜索php源代码的搜索策略,特别是对于像我这样的初学者,在海量的php源代码中感到非常迷茫 【参考方案1】:

有什么办法可以看到使用eclipse的php函数内部实现吗?

很遗憾,没有。

什么是搜索php源码的最佳搜索策略,尤其是对于像我这样的初学者,在海量的php源码中感到非常迷茫

我假设您真正想要的是本地 PHP 函数及其输入参数和输出类型的参考。在这种情况下,official documentation 可能是最好的方法。

一些(大多数?)流行的 IDE,例如 Eclipse 和 Phpstorm 也可以为您提供一个auto-generated phpdoc block 用于 PHP 的内置函数,这些函数将直接在您的 IDE 中提供该信息。

如果您对大多数 php 函数的实际 C 实现感兴趣,您可以直接浏览 GitHub 存储库或将其克隆到您的计算机上并在 IDE(Eclipse、CLion 等)中打开并使用IDE 导航。

【讨论】:

【参考方案2】:

您可以从 GitHub (https://github.com/php/php-src) 下载 PHP 源代码 但是PHP的核心是用C语言编写的。 使用 notepad++ 从下载的源代码中搜索所需的详细信息。 例如 PHP 数组的代码将在此文件中: https://github.com/php/php-src/blob/master/ext/standard/array.c

Notepad++ 是一款出色的编辑器,具有许多附加功能,例如通过文件搜索字符串。 (在文件中查找) 希望能帮助到你 谢谢

【讨论】:

【参考方案3】:

作为替代方案,请考虑在 Docker 容器中运行 OpenGrok。 OpenGrok 是具有高级搜索机制的开源和免费源代码索引器。 (我与该项目没有任何关系)

设置起来很简单(假设您已经安装了 Docker):

# Make a directory that will contain source files for opengrok to index
mkdir ~/opengrok
# Clone the PHP source into that directory
git clone https://github.com/php/php-src.git ~/opengrok/php-src
# Start the OpenGrok container
docker run -d -v ~/opengrok:/src -p8081:8080 opengrok/docker

现在您应该等待一两分钟,让 OpenGrok 完全索引源代码树。

打开浏览器

我们要搜索array_values 实现

选择array.c中的实现

你有它! array_values 的 C 实现。

【讨论】:

以上是关于如何使用eclipse查看php函数源代码的主要内容,如果未能解决你的问题,请参考以下文章

如何解决eclipse不能查看源码的问题?

android eclipse如何查看耗时

如何在Eclipse 中查看(如Objects)的源代码

如何在 Eclipse 中为 PHP 核心函数启用自动完成/语法高亮?

如何在 eclipse kepler 中查看 JavaFX SDK 的源代码?

Eclipse PHP Profiler - 如何获取参数?