zend-stratigility v2.0.0 Release Notes
Release Date: 2017-01-24 // about 7 years ago-
โ Added
- Nothing.
๐ Changed
#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
Zend\Stratigility\Middleware
now implement the new interfaces, which could affect extending classes. Zend\Stratigility\Next
andZend\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.
โก๏ธ #67 updates each of
Zend\Stratigility\MiddlewarePipe
,Zend\Stratigility\Middleware\ErrorHandler
, andZend\Stratigility\Middleware\NotFoundHandler
to require all arguments (none are optional).#67 modifies the internals of
Zend\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.
#71 modifies
Zend\Stratigility\MiddlewarePipe
such that it no longer decorates the request and response provided at invocation with theZend\Stratigility\Http\*
variants, as these have been removed.โก๏ธ #76 updates
MiddlewarePipe
to implement only the http-interop/http-middleware server-side middleware interface, and not the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ #76 updates
Zend\Stratigility\Middleware\ErrorHandler
to implement the http-interop/http-middleware server-side middleware interface instead of the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ #76 updates
Zend\Stratigility\Middleware\NotFoundHandler
to implement the http-interop/http-middleware server-side middleware interface instead of the Stratigility-specificMiddlewareInterface
(which was removed).โก๏ธ #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.โก๏ธ #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.โก๏ธ #76 updates the constructor of
Next
to rename the$done
argument to$nextDelegate
and typehint it against the http-interop/http-middlewareDelegateInterface
.โก๏ธ #76 updates
Next::__invoke()
to remove all arguments except the$request
argument; the method now proxies to the instanceprocess()
method.โก๏ธ #76 updates
Next
to no longer compose aDispatch
instance; it is now capable of dispatching on its own.โก๏ธ #76 updates the
Zend\Stratigility\Route
constructor to raise an exception if non-http-interop middleware is provided as the route handler.โก๏ธ #79 updates the
raiseThrowables()
method of each ofMiddlewarePipe
andNext
to be no-ops.
๐ Deprecated
- ๐ #79 deprecates
the
raiseThrowables()
method of each ofMiddlewarePipe
andNext
.
โ Removed
๐
Zend\Stratigility\Exception\MiddlewareException
was removed as it is no longer thrown.๐ #67 removes
Zend\Stratigility\FinalHandler
. UseZend\Stratigility\NoopFinalHandler
instead, along withZend\Stratigility\Middleware\ErrorHandler
andZend\Stratigility\Middleware\NotFoundHandler
(or equivalents).๐ #67 removes
Zend\Stratigility\ErrorMiddlewareInterface
. Register middleware, such asZend\Stratigility\Middleware\ErrorHandler
, in outer layers of your application to handle errors.๐ #67 removes
Zend\Stratigility\Dispatch
. This was an internal detail of theNext
implementation, and should not affect most applications.๐ #67 removes
Zend\Stratigility\Utils::getArity()
. This was used only inDispatch
; since middleware signatures no longer vary, it is no longer necessary.๐ #67 removes the final, optional
$err
argument toZend\Stratigility\Next()
; raise exceptions instead, and provide error handling middleware such asZend\Stratigility\Middleware\ErrorHandler
instead.๐ #67 removes the
$done
argument to theZend\Stratigility\Next
constructor.๐ #71 removes the
Zend\Stratigility\Http\Request
class.๐ #71 removes the
Zend\Stratigility\Http\Response
class.๐ #71 removes
Zend\Stratigility\Http\ResponseInterface
.๐ #76 removes
Zend\Stratigility\MiddlewareInterface
andZend\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.๐ #76 removes the
Zend\Stratigility\Dispatch
class. The class was an internal detail ofNext
, and no longer required.
๐ Fixed
- Nothing.