phprs\Router::__invoke PHP Méthode

__invoke() public méthode

调用路由规则匹配的api
public __invoke ( Request $request = null, Response &$respond = null ) : void
$request Request
$respond Response
Résultat void
    public function __invoke($request = null, &$respond = null)
    {
        if ($request === null) {
            $request = new Request(null, $this->url_begin);
        }
        if ($respond == null) {
            $respond = new Response();
        }
        $request['$.router'] = $this;
        //先按配置的顺序调用hook
        foreach ($this->hook_routes as $hook) {
            $res = new BufferedRespond();
            if (!$this->invokeRoute($hook, $request, $res)) {
                continue;
            }
            $respond->append($res->getBuffer());
            $break = false;
            $respond->flush('break', function ($var) use(&$break) {
                $break = $var;
            });
            if ($break) {
                Logger::info("invoke break");
                $respond->flush();
                return;
            }
        }
        $res = new BufferedRespond();
        Verify::isTrue($this->invokeRoute($this->routes, $request, $res), new NotFound());
        $respond->append($res->getBuffer());
        $respond->flush();
    }