function (\ReflectionMethod $method, $instance, $methodAnnoSelf) { $path = $methodAnnoSelf->value;//uri; $requestMethod = count($methodAnnoSelf->method) > 0 ? $methodAnnoSelf->method : ['GET']; $RouterCollector = BeanFactory::getBean("RouterCollector"); //var_dump($RouterCollector); $RouterCollector->addRouter($requestMethod, $path, function ($params,$extParams) use ($method, $instance) { $inputParams=[]; //得到方法的反射参数 $refParams=$method->getParameters(); foreach ($refParams as $refParam){ if(isset($params[$refParam->getName()])){ $inputParams[] = $params[$refParam->getName()]; }else{ foreach($extParams as $extParam){ //$refParam->getClass 获取参数Request $request的类型 if($refParam->getClass()->isInstance($extParam)){ $inputParams[] = $extParam; //continue; goto abc; } } $inputParams[] = false; } abc: } return $method->invokeArgs($instance,$inputParams); //return $method->invoke($instance);//执行反射方法 }); return $instance; } ];