我有一个庞大的项目,其中导入了许多别名和命名空间。我想找到一种方法来查找哪个文件(.php文件)正在导入哪些名称空间,别名。例如:
<?php
namespace foo;
use My\Full\Classname as Another;
use My\Full\NSname;
use ArrayObject;
$obj = new namespace\Another;
$obj = new Another;
NSname\subns\func();
$a = new ArrayObject(array(1));
?>
同样有很多其他文件我如何找到哪些类依赖于什么? 谢谢
答案 0 :(得分:0)
你可以使用来自Nikic的优秀PHP-Parser。您只需实施node visitor。
答案 1 :(得分:0)
这是一个很好的问题!你有没有想过Zend frmework和其他一些自动加载是如何工作的?
所有这些魔法都是由Reflector
完成的,要了解更多信息,请参阅here
示例1:查找已定义的函数
$temp = new ReflectionFunction('FUNCTION_NAME');
echo $temp->getFileName(); // Path of the file where function defined
示例2:查找已定义的类
$temp = new ReflectionClass('CLASS_NAME');
echo $temp->getFileName(); // Path of the file where class defined