Laminas Stratigility v2.0.0 Release Notes
Release Date: 2017-01-24 // about 7 years ago-
โ Added
- Nothing.
๐ Changed
zendframework/zend-stratigility#96 changes the minimum supported http-interop/http-middleware version to 0.4.1. This impacts several things:
- Middleware that implemented the http-interop/http-middleware 0.2.0 interfaces will no longer work with Stratigility. In most cases, these can be updated by changing import statements. As an example:
// http-middleware 0.2.0: use Interop\Http\Middleware\DelegateInterface; use Interop\Http\Middleware\ServerMiddlewareInterface; // Becomes the following under 0.4.1: use Interop\Http\ServerMiddleware\DelegateInterface; use Interop\Http\ServerMiddleware\MiddlewareInterface as ServerMiddlewareInterface;
- The various classes under
Laminas\Stratigility\Middleware
now implement the new interfaces, which could affect extending classes. Laminas\Stratigility\Next
andLaminas\Stratigility\Delegate\CallableDelegateDecorator
have signature changes due to changes in theDelegateInterface
; again, these changes should only affect those extending the classes.Interop\Http\Middleware\MiddlewareInterface
(which was intended for implementation by client-side middleware) no longer exists, which means it is also no longer supported within Stratigility.
โก๏ธ zendframework/zend-stratigility#67 updates each of
Laminas\Stratigility\MiddlewarePipe
,Laminas\Stratigility\Middleware\ErrorHandler
, andLaminas\Stratigility\Middleware\NotFoundHandler
to require all arguments (none are optional).zendframework/zend-stratigility#67 modifies the internals of
Laminas\Stratigility\MiddlewarePipe
's__invoke()
method.- When instantiating the
Next
instance, it now captures it in a variable named$layer
. - If the result of
Next
is not a response instance, the response passed during invocation is promoted as the layer response. - The response is then passed to the
$next
argument provided at invocation, and the result of that returned without verification.
- When instantiating the
In most cases, this should have no impact on your application.
zendframework/zend-stratigility#71 modifies
Laminas\Stratigility\MiddlewarePipe
such that it no longer decorates the request and response provided at invocation with theLaminas\Stratigility\Http\*
variants, as these have been removed.โก๏ธ zendframework/zend-stratigility#76 updates
MiddlewarePipe
to implement only the http-interop/http-middleware server-side middleware interface, and not the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ zendframework/zend-stratigility#76 updates
Laminas\Stratigility\Middleware\ErrorHandler
to implement the http-interop/http-middleware server-side middleware interface instead of the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ zendframework/zend-stratigility#76 updates
Laminas\Stratigility\Middleware\NotFoundHandler
to implement the http-interop/http-middleware server-side middleware interface instead of the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ zendframework/zend-stratigility#76 updates
MiddlewarePipe::__invoke()
to require a third argument, now named$delegate
, and no longer type-hinted. If a callable not implementing http-interop/http-middlewareDelegateInterface
is provided, it is wrapped in theCallableDelegateDecorator
(introduced in 1.3.0). The method then calls its ownprocess()
method with the request and delegate. This method should typically only be used as an entry point for an application.โก๏ธ zendframework/zend-stratigility#76 updates
MiddlewarePipe::pipe()
to raise an exception if callable middleware using the legacy double-pass signature is provided, but no response prototype is composed in theMiddlewarePipe
instance yet.โก๏ธ zendframework/zend-stratigility#76 updates the constructor of
Next
to rename the$done
argument to$nextDelegate
and typehint it against the http-interop/http-middlewareDelegateInterface
.โก๏ธ zendframework/zend-stratigility#76 updates
Next::__invoke()
to remove all arguments except the$request
argument; the method now proxies to the instanceprocess()
method.โก๏ธ zendframework/zend-stratigility#76 updates
Next
to no longer compose aDispatch
instance; it is now capable of dispatching on its own.โก๏ธ zendframework/zend-stratigility#76 updates the
Laminas\Stratigility\Route
constructor to raise an exception if non-http-interop middleware is provided as the route handler.โก๏ธ zendframework/zend-stratigility#79 updates the
raiseThrowables()
method of each ofMiddlewarePipe
andNext
to be no-ops.
๐ Deprecated
- ๐ zendframework/zend-stratigility#79 deprecates
the
raiseThrowables()
method of each ofMiddlewarePipe
andNext
.
โ Removed
๐
Laminas\Stratigility\Exception\MiddlewareException
was removed as it is no longer thrown.๐ zendframework/zend-stratigility#67 removes
Laminas\Stratigility\FinalHandler
. UseLaminas\Stratigility\NoopFinalHandler
instead, along withLaminas\Stratigility\Middleware\ErrorHandler
andLaminas\Stratigility\Middleware\NotFoundHandler
(or equivalents).๐ zendframework/zend-stratigility#67 removes
Laminas\Stratigility\ErrorMiddlewareInterface
. Register middleware, such asLaminas\Stratigility\Middleware\ErrorHandler
, in outer layers of your application to handle errors.๐ zendframework/zend-stratigility#67 removes
Laminas\Stratigility\Dispatch
. This was an internal detail of theNext
implementation, and should not affect most applications.๐ zendframework/zend-stratigility#67 removes
Laminas\Stratigility\Utils::getArity()
. This was used only inDispatch
; since middleware signatures no longer vary, it is no longer necessary.๐ zendframework/zend-stratigility#67 removes the final, optional
$err
argument toLaminas\Stratigility\Next()
; raise exceptions instead, and provide error handling middleware such asLaminas\Stratigility\Middleware\ErrorHandler
instead.๐ zendframework/zend-stratigility#67 removes the
$done
argument to theLaminas\Stratigility\Next
constructor.๐ zendframework/zend-stratigility#71 removes the
Laminas\Stratigility\Http\Request
class.๐ zendframework/zend-stratigility#71 removes the
Laminas\Stratigility\Http\Response
class.๐ zendframework/zend-stratigility#71 removes
Laminas\Stratigility\Http\ResponseInterface
.๐ zendframework/zend-stratigility#76 removes
Laminas\Stratigility\MiddlewareInterface
andLaminas\Stratigility\ErrorMiddlewareInterface
. The latter is removed entirely, while the former is essentially replaced by http-interop'sServerMiddlewareInterface
. You may still write callable middleware using the legacy double-pass signature, however.๐ zendframework/zend-stratigility#76 removes the
Laminas\Stratigility\Dispatch
class. The class was an internal detail ofNext
, and no longer required.
๐ Fixed
- Nothing.