Nicht sicher über den besten Titel, aber ich werde erklären, was ich so gut ich kann fragen. Angenommen, ich habe die folgende Datei:Get Use-Anweisung von Klasse
MyCustomClass.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;
}
}
Nun, wenn ich Reflektion verwenden, so könnte ich die vollständig qualifizierten Klassennamen aus dem Typ Hinweisen in dem Konstrukt erhalten.
Ich würde jedoch FooNamespace\FooClass
und BarNamespace\BarClass
erhalten. Nicht, FooNamespace\FooClass
und BarNamespace\Bar
. Ich würde auch keinen Hinweis auf BazNamespace\BazClass
bekommen.
Im Grunde ist meine Frage: Wie kann ich die voll qualifizierten Namen von MyCustomClass.php
erhalten, während nur FooClass
zu wissen, Bar
, und, BazSpecial
?
Ich möchte keinen Dateiparser verwenden, da dies die Leistung beeinträchtigt. Ich möchte in der Lage sein, etwas zu tun wie:
$class = new ReflectionClass('MyCustomClass');
...
$class->getUsedClass('FooClass'); // FooNamespace\FooClass
$class->getUsedClass('Bar'); // BarNamespace\BarClass
$class->getUsedClass('BazSpecial'); // BazNamespace\BazClass
Wie würde ich darüber gehen?