PHP Class Zend\Stratigility\MiddlewarePipe
This class implements a pipeline of middleware, which can be attached using
the
pipe() method, and is itself middleware.
The request and response objects are decorated using the Zend\Stratigility\Http
variants in this package, ensuring that the request may store arbitrary
properties, and the response exposes the convenience
write(),
end(), and
isComplete() methods.
It creates an instance of
Next internally, invoking it with the provided
request and response instances; if no
$out argument is provided, it will
create a
FinalHandler instance and pass that to
Next as well.
Inspired by Sencha Connect.
Show file
Open project: zendframework/zend-stratigility
Class Usage Examples
Protected Properties
Public Methods
Method |
Description |
|
__construct ( ) |
Constructor |
|
__invoke ( Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response, callable $out = null ) : Psr\Http\Message\ResponseInterface |
Handle a request |
|
hasResponsePrototype ( ) : boolean |
|
|
pipe ( string | callable | object $path, null | callable | object $middleware = null ) : self |
Attach middleware to the pipeline. |
|
process ( Psr\Http\Message\ServerRequestInterface $request, Interop\Http\Middleware\DelegateInterface $delegate ) : Psr\Http\Message\ResponseInterface |
http-interop invocation: single-pass with delegate. |
|
raiseThrowables ( ) : void |
Enable the "raise throwables" flag. |
|
setResponsePrototype ( Psr\Http\Message\ResponseInterface $prototype ) : void |
|
|
Private Methods
Method Details
__construct()
public method
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 |
|
hasResponsePrototype()
public method
Each middleware can be associated with a particular path; if that
path is matched when that middleware is invoked, it will be processed;
otherwise it is skipped.
No path means it should be executed every request cycle.
A handler CAN implement MiddlewareInterface, but MUST be callable.
Handlers with arity >= 4 or those implementing ErrorMiddlewareInterface
are considered error handlers, and will be executed when a handler calls
$next with an error or raises an exception.
Executes the internal pipeline, passing $delegate as the "final
handler" in cases when the pipeline exhausts itself.
public process ( Psr\Http\Message\ServerRequestInterface $request, Interop\Http\Middleware\DelegateInterface $delegate ) : Psr\Http\Message\ResponseInterface |
$request |
Psr\Http\Message\ServerRequestInterface |
|
$delegate |
Interop\Http\Middleware\DelegateInterface |
|
return |
Psr\Http\Message\ResponseInterface |
|
raiseThrowables()
public method
Enable the "raise throwables" flag.
setResponsePrototype()
public method
public setResponsePrototype ( Psr\Http\Message\ResponseInterface $prototype ) : void |
$prototype |
Psr\Http\Message\ResponseInterface |
|
return |
void |
|
Property Details
$pipeline protected property
protected SplQueue $pipeline |
return |
SplQueue |
|
$responsePrototype protected property
protected ResponseInterface,Psr\Http\Message $responsePrototype |
return |
Psr\Http\Message\ResponseInterface |
|