记录哪些文件是执行的一部分?(包括的,必需的,类加载的)


Record which files are part of an execution? (included, required, classloaded)

[这是一个代码覆盖率问题,只是我希望在生产中使用它,目的是精确定位可以删除的代码]

是否有可能以某种方式记录哪些文件是PHP执行的一部分?也就是说,当一个文件作为某个入口点执行的一部分被加载时,是否有一种方法来记录这个事实?也就是说,除了入口点php文件本身之外,当文件作为类加载的一部分被包含、需要或加载时?(类加载部分可能是最简单的,因为你可以自己处理类加载器)。

背景:我有一个遗留的代码库-作为清理工作,删除不再使用的文件会很好。这个技巧可以让我知道哪些文件正在使用。运行此日志记录足够长的时间,您可以简单地删除所有未碰过的记录。

"Level 2":可能包含了实际上没有使用的文件——例如,包含了一些函数库,但执行过程中实际上从未使用任何函数。如何追踪呢?XDebug和其他侵入性的方法是唯一的选择吗?

如果您正在查找包含的文件:-

get_included_files();
http://php.net/manual/en/function.get-included-files.php

要跟踪加载的类列表,Xdebug应该是最佳选择。
或APD:高级PHP调试器

看看apd_callstack,你会发现一些惊喜。

http://www.php.net/manual/en/function.get-included-files.php

?

就我而言,自动加载只是导致要求

我相信您可以利用debug_backtrace()的一些输出