phprs\Router::loadRoutes PHP Method

loadRoutes() private method

遍历API目录生成路由规则
private loadRoutes ( &$routes, string $apis_dir, string $class, string $method ) : Router
$apis_dir string
$class string
$method string
return Router
    private function loadRoutes(&$routes, $apis_dir, $class, $method)
    {
        Logger::info("attempt to load router {$apis_dir}");
        $dir = null;
        if (is_dir($apis_dir) && $class === null) {
            $apis_dir = $apis_dir . '/';
            Verify::isTrue(is_dir($apis_dir), "{$apis_dir} not a dir");
            $dir = @dir($apis_dir);
            Verify::isTrue($dir !== null, "open dir {$apis_dir} failed");
            $geteach = function () use($dir) {
                $name = $dir->read();
                if (!$name) {
                    return $name;
                }
                return $name;
            };
        } else {
            if (is_file($apis_dir)) {
                $files = array($apis_dir);
                $apis_dir = '';
            } else {
                $apis_dir = $apis_dir . '/';
                if (is_array($class)) {
                    foreach ($class as &$v) {
                        $v .= '.php';
                    }
                    $files = $class;
                } else {
                    $files = array($class . '.php');
                }
            }
            $geteach = function () use(&$files) {
                $item = each($files);
                if ($item) {
                    return $item[1];
                } else {
                    return false;
                }
            };
        }
        while (!!($entry = $geteach())) {
            $path = $apis_dir . str_replace('\\', '/', $entry);
            if (is_file($path) && substr_compare($entry, '.php', strlen($entry) - 4, 4, true) == 0) {
                $class_name = substr($entry, 0, strlen($entry) - 4);
                $this->loadApi($routes, $path, $class_name, $method);
            } else {
                Logger::debug($path . ' ignored');
            }
        }
        if ($dir !== null) {
            $dir->close();
        }
        Logger::info("load router {$apis_dir} ok");
        return $routes;
    }