查找导入的库,名称空间和别名

时间:2014-03-19 05:44:46

标签: php

我有一个庞大的项目,其中导入了许多别名和命名空间。我想找到一种方法来查找哪个文件(.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));
?>

同样有很多其他文件我如何找到哪些类依赖于什么? 谢谢

2 个答案:

答案 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