src/DdvRestfulApi.php
public static function getDdvRestfulApi($config = array(), $class = null)
    {
        // 第二个参数提前到第一个参数
        if (is_null($class) && is_string($config)) {
            $class = $config;
            $config = array();
        }
        // 判断是否实例化过
        if (empty(DdvRestfulApi::$className)) {
            // 直接使用第一次实例化的类名
            DdvRestfulApi::$className = empty($class) ? RestfulApiEcho::class : $class;
        }
        $class = DdvRestfulApi::$className;
        if (self::$ddvRestfulApiObj === null) {
            //实例化一个单例对象
            self::$ddvRestfulApiObj = empty($class) ? (new self($config)) : (new $class($config));
        }
        //返回的属性 其实就是本对象
        return self::$ddvRestfulApiObj;
    }
public static function getDdvRestfulApi($config = array(), $class = null)
    {
        // 第二个参数提前到第一个参数
        if (is_null($class) && is_string($config)) {
            $class = $config;
            $config = array();
        }
        // 判断是否实例化过
        if (empty(DdvRestfulApi::$className)) {
            // 直接使用第一次实例化的类名
            DdvRestfulApi::$className = empty($class) ? RestfulApiEcho::class : $class;
        }
        $class = DdvRestfulApi::$className;
        if (self::$ddvRestfulApiObj === null) {
            //实例化一个单例对象
            self::$ddvRestfulApiObj = empty($class) ? (new self($config)) : (new $class($config));
        }
        //返回的属性 其实就是本对象
        return self::$ddvRestfulApiObj;
    }
获取实例化对象