Aerys\Server::tryApplication PHP Method

tryApplication() private method

private tryApplication ( InternalRequest $ireq, callable $application, array $filters )
$ireq InternalRequest
$application callable
$filters array
    private function tryApplication(InternalRequest $ireq, callable $application, array $filters)
    {
        $response = $this->initializeResponse($ireq, $filters);
        $request = new StandardRequest($ireq);
        try {
            $out = $application($request, $response);
            if ($out instanceof \Generator) {
                $promise = resolve($out);
                $promise->when($this->onCoroutineAppResolve, [$ireq, $response, $filters]);
            } elseif ($response->state() & Response::STARTED) {
                $response->end();
            } else {
                $status = HTTP_STATUS["NOT_FOUND"];
                $body = makeGenericBody($status, ["sub_heading" => "Requested: {$ireq->uri}"]);
                $response->setStatus($status);
                $response->end($body);
            }
        } catch (ClientSizeException $error) {
            if (!($response->state() & Response::STARTED)) {
                $status = HTTP_STATUS["REQUEST_ENTITY_TOO_LARGE"];
                $body = makeGenericBody($status, ["sub_heading" => "Requested: {$ireq->uri}"]);
                $response->setStatus($status);
                $response->end($body);
            }
        } catch (ClientException $error) {
            // Do nothing -- responder actions aren't required to catch this
        } catch (\Throwable $error) {
            $this->onApplicationError($error, $ireq, $response, $filters);
        }
    }