phprs\Router::invokeRoute PHP Method

invokeRoute() private method

调用路由规则匹配的api
private invokeRoute ( array $routes, unknown $request, unknown &$respond ) : boolean
$routes array 路由规则
$request unknown
$respond unknown
return boolean 是否有匹配的接口被调用
    private function invokeRoute($routes, $request, &$respond)
    {
        $method = $request['$._SERVER.REQUEST_METHOD'];
        $path = $request['$.path'];
        $uri = $request['$._SERVER.REQUEST_URI'];
        list(, $params) = explode('?', $uri) + array(null, null);
        $params = is_null($params) ? null : explode('&', $params);
        Logger::debug("try to find route {$method} " . $uri);
        $match_path = array();
        if (isset($routes[$method])) {
            if (($api = $routes[$method]->findByArray($path, $params, $match_path)) !== null) {
                Logger::debug("invoke {$uri} => {$api->getClassName()}::{$api->getMethodName()}");
                $api($request, $respond);
                return true;
            }
        }
        if (!isset($routes['*'])) {
            return false;
        }
        if (($api = $routes['*']->find($uri, $match_path)) === null) {
            return false;
        }
        Logger::debug("invoke {$uri} => {$api->getClassName()}::{$api->getMethodName()}");
        $api($request, $respond);
        return true;
    }