我们有一个庞大的遗留代码库,试图找到定义函数的位置是一项艰巨的任务。幸运的是,现代 IDE 已经涵盖了这一点。然而,尚不清楚的是如何(或者,实际上,如果)已经包含了一个文件。
我们的旧式代码通常会在一个文件中包含一组相关的函数,并在每个函数前面加上文件名(因此 login_validate() 将在 login.php 中)。
例子.php
<?php
require_once 'functions/login.php';
require_once 'functions/validate.php';
validate_something(); // Uses function defined in validate.php
echo user_login(), PHP_EOL; // user.php must have been included *somewhere* for this to work, but where?!
我的问题是:是否有一个工具可以扫描 PHP 文件并告诉我哪些文件由于未解析的函数而无法执行?
注意:使用 PHP 的内置 lint 检查器 ( php -l
) 不会捕捉到这种情况。