Takes the pipeline, creates a Next handler, and delegates to the
Next handler.
If $out is a callable, it is used as the "final handler" when
$next has exhausted the pipeline; otherwise, a FinalHandler instance
is created and passed to $next during initialization.
public __invoke ( Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response, callable $out = null ) : Psr\Http\Message\ResponseInterface | ||
$request | Psr\Http\Message\ServerRequestInterface | |
$response | Psr\Http\Message\ResponseInterface | |
$out | callable | |
return | Psr\Http\Message\ResponseInterface |
/** * @param Request $request * @param Response $response * @param callable|null $out * @return Response */ public function __invoke(Request $request, Response $response, callable $out = null) { foreach ($this->getMiddlewares($request, $response) as $middleware) { $this->pipe($middleware); } return parent::__invoke($request, $response, $out); }
/** * @param RequestInterface|Request $request * @param ResponseInterface|Response $response * @param callable|NULL $next * * @return Response */ public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = NULL) { /** @var Events $events - cache for event object */ //static $events; //$events = $events ?: $this->forge->make('events'); # TODO: Middleware Pre-Hook? # call the app middleware before event $this->events->fire(Application::NOTIFY_MIDDLEWARE, [$this, $request, $response]); # call parent middleware return parent::__invoke($this->decorateRequest($request), $this->decorateResponse($response), $next); # TODO: Middleware Post-Hook? }
/** * Overload middleware invocation. * * If $out is not provided, uses the result of `getFinalHandler()`. * * @param ServerRequestInterface $request * @param ResponseInterface $response * @param callable|null $out * @return ResponseInterface */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $out = null) { $this->pipeRoutingMiddleware(); $out = $out ?: $this->getFinalHandler($response); return parent::__invoke($request, $response, $out); }
/** * Overload middleware invocation. * * If $out is not provided, uses the result of `getFinalHandler()`. * * @todo Remove logic for creating final handler for version 2.0. * @todo Remove error handler for deprecation notice due to triggering * error middleware for version 2.0.0. * @param ServerRequestInterface $request * @param ResponseInterface $response * @param callable|null $out * @return ResponseInterface */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $out = null) { set_error_handler(function ($errno, $errstr) { return false !== strstr($errstr, 'error middleware is deprecated'); }, E_USER_DEPRECATED); if (!$out && null === ($out = $this->getFinalHandler($response))) { $response = $response instanceof StratigilityResponse ? $response : new StratigilityResponse($response); $out = new FinalHandler([], $response); } $result = parent::__invoke($request, $response, $out); restore_error_handler(); return $result; }
/** * Runs the application by invoking itself with the request and response, and emitting the returned response. * * @param ServerRequestInterface $request * @param ResponseInterface $response */ public function run(ServerRequestInterface $request, ResponseInterface $response) { $response = parent::__invoke($request, $response); $this->emitter->emit($response); }
/** * Performs negotiation and passes the now decorated request to the next middleware. * * {@inheritDoc} */ public function __invoke(Request $request, Response $response, callable $out = null) { $modifiedRequest = $this->negotiator->negotiate($request); parent::__invoke($modifiedRequest, $response, $out); }
/** * Overload middleware invocation. * * If $out is not provided, uses the result of `getFinalHandler()`. * * @todo Remove logic for creating final handler for version 2.0. * @param ServerRequestInterface $request * @param ResponseInterface $response * @param callable|null $out * @return ResponseInterface */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $out = null) { if (!$out && null === ($out = $this->getFinalHandler($response))) { $response = $response instanceof StratigilityResponse ? $response : new StratigilityResponse($response); $out = new FinalHandler([], $response); } return parent::__invoke($request, $response, $out); }
/** * @inheritdoc */ public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $out = null) : ResponseInterface { $this->initialize(); return parent::__invoke($request, $response, $out); }