code: public function callInClass($class_name,$action,$params = array()){
          $ref = new ReflectionMethod($class_name, $action);
          if(!$ref->isPublic() && !$ref->isStatic()) throw new InjectorException("$class_name->$action is not public or static");
          $params_need = $ref->getParameters();
          $args = $this->apply($params_need,$params);
          $obj = $this->produce($class_name,$params);
          return call_user_func_array([$obj,$action],$args);
          //return $ref->invokeArgs($obj,$args);
      }
docs: call a method in class
  @param $class_name
  @param $action
  @param array $params
  @return mixed
  @throws InjectorException