__invoke() 공개 메소드

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
리턴 Psr\Http\Message\ResponseInterface
예제 #1
0
 /**
  * @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);
 }
예제 #2
0
 /**
  * @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?
 }
예제 #3
0
 /**
  * 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);
 }
예제 #4
0
 /**
  * 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;
 }
예제 #5
0
 /**
  * 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);
 }
예제 #6
0
 /**
  * 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);
 }
예제 #7
0
 /**
  * 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);
 }
예제 #8
0
 /**
  * @inheritdoc
  */
 public function __invoke(ServerRequestInterface $request, ResponseInterface $response, callable $out = null) : ResponseInterface
 {
     $this->initialize();
     return parent::__invoke($request, $response, $out);
 }