如何使用Eclipse检查PHP函数源代码

9

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

因此,在eclipse中,我控制单击函数名称,它将带我到一个包含函数原型定义但不包含内部源代码的页面。

enter image description here

是否有任何方法可以使用eclipse查看php函数的内部实现?(无论该函数是用php还是c编写的)

如果无法使用eclipse查看php源代码,则是否有任何良好的策略来搜索github上的php源代码


2
array_values 是一个内部函数,用 C 语言编写(https://github.com/php/php-src/blob/9993304da4559a936246e118cfefa1bcedaa84a5/ext/standard/array.c#L4021)。 - Kerkouch
嗨@Karkouch,感谢您的评论。您介意我问一下,对于像我这样的初学者来说,在大量的PHP源代码中搜索的最佳策略是什么,因为我感到非常迷失? - Thor
3个回答

9

有没有办法使用Eclipse查看php函数的内部实现?

很遗憾,没有。

对于像我这样的初学者来说,什么是搜索PHP源代码的最佳策略,特别是在如此庞大的PHP源代码中感到非常迷失的情况下?

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

一些(大多数?)流行的IDE,如Eclipse和Phpstorm,也可以为PHP的内置函数提供自动生成的phpdoc块,直接在您的IDE中提供该信息。

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


4
您可以从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++是一个功能强大的编辑器,具有许多附加功能,如在文件中查找字符串(“在文件中查找”)。 希望能帮到您 谢谢

1
作为替代方案,考虑在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完全索引源代码树。
打开你的浏览器 step 1 我们想要搜索array_values的实现。

step 2

选择在array.c中的实现。

Found it

这就是array_values的C语言实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接