不太确定最好的标题,但我会尽我所能解释我的要求。假设我有以下文件:
我的自定义类.php
<?php
namespace MyNamespace;
use FooNamespace\FooClass;
use BarNamespace\BarClass as Bar;
use BazNamespace\BazClass as BazSpecial;
class MyCustomClass {
protected $someDependencies = [];
public function __construct(FooClass $foo, Bar $bar) {
$someDependencies[] = $foo;
$someDependencies[] = $bar;
}
}
现在,如果我要使用反射,我可以从构造中的类型提示中获取完全限定的类名。
但是,我会收到FooNamespace\FooClass
and BarNamespace\BarClass
. Not, FooNamespace\FooClass
and BarNamespace\Bar
。我也不会得到任何参考BazNamespace\BazClass
.
基本上,我的问题是:我怎样才能从MyCustomClass.php
虽然只知道FooClass
, Bar
, and, BazSpecial
?
我不想使用文件解析器,因为这会消耗性能。我希望能够做类似的事情:
$class = new ReflectionClass('MyCustomClass');
...
$class->getUsedClass('FooClass'); // FooNamespace\FooClass
$class->getUsedClass('Bar'); // BarNamespace\BarClass
$class->getUsedClass('BazSpecial'); // BazNamespace\BazClass
我该怎么做呢?