Qa\SoftMocks::callStaticMethod PHP Method

callStaticMethod() public static method

public static callStaticMethod ( $class, $method, $args, $check_mock = false )
    public static function callStaticMethod($class, $method, $args, $check_mock = false)
    {
        if ($check_mock && isset(self::$mocks[$class][$method])) {
            if (self::$debug) {
                self::debug("Intercepting call to {$class}::{$method}");
            }
            return (new SoftMocksFunctionCreator())->run(null, $class, $args, self::$mocks[$class][$method]);
        }
        try {
            $Rm = new \ReflectionMethod($class, $method);
            $Rm->setAccessible(true);
            $decl_class = $Rm->getDeclaringClass()->getName();
            if ($check_mock && isset(self::$mocks[$decl_class][$method])) {
                if (self::$debug) {
                    self::debug("Intercepting call to {$class}::{$method}");
                }
                return (new SoftMocksFunctionCreator())->run(null, $class, $args, self::$mocks[$decl_class][$method]);
            }
        } catch (\ReflectionException $e) {
            if (method_exists($class, '__callStatic')) {
                $Rm = new \ReflectionMethod($class, '__callStatic');
                $Rm->setAccessible(true);
                return $Rm->invokeArgs(null, [$method, $args]);
            }
            return call_user_func_array([$class, $method], $args);
        }
        return $Rm->invokeArgs(null, $args);
    }