PHP。我可以让反射使用自动加载吗?
我需要用反射实例化很多类。有不同的名称空间,其中包含具有相同名称但参数不同的特殊类 每个名称空间都包含超级类,这些超级类以相同的方式运行其他特殊类-反射 我可以将param添加到我应该使用的名称空间的超类中,但是如果我在文件的PHP。我可以让反射使用自动加载吗?,php,reflection,Php,Reflection,我需要用反射实例化很多类。有不同的名称空间,其中包含具有相同名称但参数不同的特殊类 每个名称空间都包含超级类,这些超级类以相同的方式运行其他特殊类-反射 我可以将param添加到我应该使用的名称空间的超类中,但是如果我在文件的use部分中包含我想在反射中使用的所有类,那会更舒服 有什么想法吗 示例(我想有): 我们需要看一些代码。至少向我们展示一下你是如何设置的,以及你目前是如何实例化类的。你为什么需要用反射实例化类?@magnus eriksson,我更新了我的帖子。感谢you@charlot
use
部分中包含我想在反射中使用的所有类,那会更舒服
有什么想法吗
示例(我想有):
我们需要看一些代码。至少向我们展示一下你是如何设置的,以及你目前是如何实例化类的。你为什么需要用反射实例化类?@magnus eriksson,我更新了我的帖子。感谢you@charlotte-dunois,我认为它是动态生成类映射的最有效的解决方案,而不是使用很多条件来选择哪个类更适合现在使用。因为这里是一个简化的代码示例,在完整版本中,它还检测传递了什么参数,以及我将在之后调用的函数可以接受多少参数
use Namespace1\Class1;
use Namespace1\Class2;
use Namespace2\Class1; // same name as in Namespace1
class Management {
public function run()
{
// ...some inits with a lot of params which I pass through __constructor
$needClassName = $this->getClassName(); // should be Class1, Class2
$reflect = new \ReflectionClass($needClassName);
$manager = $reflect->newInstance($user, $database, $errors);
}
}