<?php
//上传[文件/图片]类使用反射机制创建对应类
class ClassArr
{
public function uploadClassStat(){
return [
'image'=>'\App\Lib\Upload\Image',
'video'=>'\App\Lib\Upload\Video',
];
}
/**
*初始化类
*$type类型
*$supportedClass uploadClassStat()
*$params构造函数的参数
*/
public function initClass($type,Array $supportedClass,Array $params = []){
if(!array_key_exists($type,$supportedClass)){
throw new \Exception($type."不存在");
}
$calssName = $supportedClass[$type];
return new \ReflectionClass($calssName)->newInstanceArgs($params);
}
}
$classObj = new ClassArr();
$classStat = $classObj->uploadClassStat();
$uploadObj = $classObj->initClass($type,$classStat,$params);
$file = $uploadObj->upload();