在我的服务器上浏览应用程序时,我可以记录哪些PHP文件和/或函数被访问


can I log which PHP files and/or functions are accessed while browsing an application on my server?

我有一个php应用程序,里面有很多不同的文件,代码有点乱。

我想做的是在我的服务器上安装应用程序,简单地使用它,尝试覆盖所有的功能点击这里和那里,然后得到一个日志说'这些php文件被使用'或'这些函数被访问'。

我不关心函数参数,所需时间,每个东西被调用了多少次等等。

我只是想看看是否有函数或至少整个文件从未被调用-所以它们是死的。

我知道1)它可以通过编辑每个文件并在调用或包含它时写一些东西来完成2)可能会有静态工具试图遵循所有代码路径等。

我对上面不感兴趣-我需要的只是一些东西,可能是一个php模块/调试器,我不确定,哪些文件被请求/包含/由php运行的日志。如果具体的功能也能被追踪,那就更好了。但即使只是文件也很棒。

听起来你在寻找像xdebug这样的调试器,特别是这个特性和这个函数trace

这只是为了获取正在使用的文件列表。需要调试器来对项目进行分析。

包含的文件列表将被保存到一个文本文件。

在php.ini中,设置auto_prepend_file指向一个包含以下内容的文件。

<?php
function shutdown_file_output()
{
    file_put_contents( 'included_files.txt', implode( PHP_EOL, get_included_files() );
}
register_shutdown_function('shutdown_file_output');

PHP的debug_backtrace()函数可用于获取脚本执行的完整跟踪,包括调用的函数和参数。如果您在脚本末尾调用这个函数,并将输出记录到一个或多个文件中,那么应该可以完成您要查找的内容。