1

背景:

PHPDoc ( http://www.phpdoc.org/ ) 是一个出色的工具,用于从文件中的注释中提取类或方法的 html 文档。添加 PHPDoc 注释还有其他优点 - 如果您使用 Zend 或 Netbeans 之类的 IDE,它将使用 PHPDocs 向您显示自动完成提示。

大多数问题跟踪器都有一个功能,您可以使用特殊注释提交到您的版本控制系统,它会自动将该提交链接到该问题。

所以这就是我想要的系统:我提交了一些带有特殊注释的代码,我的问题跟踪器将它链接到一个问题。然后它查看提交并计算出我更改了​​哪些方法和类。然后它说“如果您正在寻找有关此问题的文档,请尝试 PHPDoc 的这些位:ClassX.FunctionY, ClassZ.VariableP”。它会自动将用户指向可能相关的文档。我认为这将是一个很棒的功能。

问题:

因此,缺少的部分是获取 PHP 代码差异,并计算出哪些类和方法发生了变化。有人对一些可以做到这一点的代码有任何指示吗?

在此先感谢,詹姆斯

4

4 回答 4

1

如果您使用的是subversion,您可以看到项目中所有已更改文件的差异。看看它们有什么不同。

有些软件具有集成的颠覆支持,例如Trac。

这是 TracDiff 的图片

于 2009-05-12T16:02:27.587 回答
1

你需要一个深入理解 PHP 结构的工具,也就是能够像 PHP 引擎一样解析 PHP 源文本。

我们的“Smart Diff”做到了这一点,可以比较一对你知道是原始版本和更改版本的 PHP 文件。它比较 AST 并找到将一个映射到另一个的最小编辑。如果旧方法和新方法完全相似,它会发现并告诉您如何编辑一种方法以获得另一种方法。请参阅http://www.semdesigns.com/Products/SmartDifferencer/index.html

于 2009-06-17T10:33:39.390 回答
0

http://uk3.php.net/reflection

PHP5 有方法可以将一个类分开并检查所有方法,包括给我需要与差异匹配的行号。使用它,我可以开始手动推出我自己的解决方案。

于 2009-06-25T09:22:55.073 回答
0

您可以编写一个提交后脚本来接收修改后的文件并查看它们以执行您想要的操作

于 2009-06-25T09:51:57.760 回答