Inject/Injector.php
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);
    }
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);
    }
call a method in class
@param $class_name
@param $action
@param array $params
@return mixed
@throws InjectorException