Không chắc chắn về tiêu đề hay nhất nhưng tôi sẽ giải thích những gì tôi đang yêu cầu tốt nhất có thể. Giả sử tôi có các tập tin sau đây:Nhận tuyên bố sử dụng từ lớp
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;
}
}
Bây giờ nếu tôi được sử dụng phản chiếu, tôi có thể nhận được các tên lớp đầy đủ từ các gợi ý gõ vào xây dựng.
Tuy nhiên, tôi sẽ nhận được FooNamespace\FooClass
và BarNamespace\BarClass
. Không, FooNamespace\FooClass
và BarNamespace\Bar
. Tôi cũng sẽ không được tham chiếu đến BazNamespace\BazClass
.
Về cơ bản, câu hỏi của tôi là: Làm cách nào để có được tên đủ điều kiện từ MyCustomClass.php
trong khi chỉ biết FooClass
, Bar
và, BazSpecial
?
Tôi không muốn sử dụng trình phân tích tệp vì điều này sẽ ăn hiệu suất. Tôi muốn có thể làm một việc gì đó như:
$class = new ReflectionClass('MyCustomClass');
...
$class->getUsedClass('FooClass'); // FooNamespace\FooClass
$class->getUsedClass('Bar'); // BarNamespace\BarClass
$class->getUsedClass('BazSpecial'); // BazNamespace\BazClass
Tôi sẽ làm như thế nào?