public function dispatch(Request $request): Response
    {
        // Check the returned route
        if (null === $route = $this->requestRoute($request)) {
            // If it was null throw a not found exception
            throw new NotFoundHttpException();
        }

        // If the route is secure and the current request is not secure
        if ($route->isSecure() && ! $request->isSecure()) {
            // Throw the redirect to the secure path
            return $this->app->redirect()->secure($request->getPath());
        }

        // Dispatch the route's before request handled middleware
        $middlewareReturn = $this->routeRequestMiddleware($request, $route);

        // If the middleware returned a response
        if ($middlewareReturn instanceof Response) {
            // Return the response
            return $middlewareReturn;
        }

        // Trigger an event for route matched
        $this->app->events()->trigger(RouteMatched::class, [$route, $request]);
        // Set the found route in the service container
        $this->app->container()->singleton(Route::class, $route);

        // Attempt to dispatch the route using any one of the callable options
        $dispatch = $this->app->dispatcher()->dispatchCallable(
            $route,
            $route->getMatches()
        );

        // Get the response from the dispatch
        $response = $this->getResponseFromDispatch($dispatch);

        // Dispatch the route's before request handled middleware and return
        // the response
        $this->routeResponseMiddleware($request, $response, $route);

        return $response;
    }
public function dispatch(Request $request): Response
    {
        // Check the returned route
        if (null === $route = $this->requestRoute($request)) {
            // If it was null throw a not found exception
            throw new NotFoundHttpException();
        }

        // If the route is secure and the current request is not secure
        if ($route->isSecure() && ! $request->isSecure()) {
            // Throw the redirect to the secure path
            return $this->app->redirect()->secure($request->getPath());
        }

        // Dispatch the route's before request handled middleware
        $middlewareReturn = $this->routeRequestMiddleware($request, $route);

        // If the middleware returned a response
        if ($middlewareReturn instanceof Response) {
            // Return the response
            return $middlewareReturn;
        }

        // Trigger an event for route matched
        $this->app->events()->trigger(RouteMatched::class, [$route, $request]);
        // Set the found route in the service container
        $this->app->container()->singleton(Route::class, $route);

        // Attempt to dispatch the route using any one of the callable options
        $dispatch = $this->app->dispatcher()->dispatchCallable(
            $route,
            $route->getMatches()
        );

        // Get the response from the dispatch
        $response = $this->getResponseFromDispatch($dispatch);

        // Dispatch the route's before request handled middleware and return
        // the response
        $this->routeResponseMiddleware($request, $response, $route);

        return $response;
    }
public function dispatch ( Request $ request ) : Response { // Check the returned route if ( null === $ route = $ this -> requestRoute ( $ request ) ) { // If it was null throw a not found exception throw new NotFoundHttpException ( ) ; } // If the route is secure and the current request is not secure if ( $ route -> isSecure ( ) && ! $ request -> isSecure ( ) ) { // Throw the redirect to the secure path return $ this -> app -> redirect ( ) -> secure ( $ request -> getPath ( ) ) ; } // Dispatch the route's before request handled middleware $ middlewareReturn = $ this -> routeRequestMiddleware ( $ request , $ route ) ; // If the middleware returned a response if ( $ middlewareReturn instanceof Response ) { // Return the response return $ middlewareReturn ; } // Trigger an event for route matched $ this -> app -> events ( ) -> trigger ( RouteMatched :: class , [ $ route , $ request ] ) ; // Set the found route in the service container $ this -> app -> container ( ) -> singleton ( Route :: class , $ route ) ; // Attempt to dispatch the route using any one of the callable options $ dispatch = $ this -> app -> dispatcher ( ) -> dispatchCallable ( $ route , $ route -> getMatches ( ) ) ; // Get the response from the dispatch $ response = $ this -> getResponseFromDispatch ( $ dispatch ) ; // Dispatch the route's before request handled middleware and return // the response $ this -> routeResponseMiddleware ( $ request , $ response , $ route ) ; return $ response ; }
Dispatch the route and find a match.

@param Request $request The request

@throws \InvalidArgumentException
@throws \Valkyrja\Http\Exceptions\NotFoundHttpException

@return \Valkyrja\Http\Response
Dispatch the route and find a match .