This repository was archived by the owner on Jan 29, 2020. It is now read-only.
Releases: zendframework/zend-expressive
Releases · zendframework/zend-expressive
Expressive 1.0.0rc7
Added
- #277 adds a new class,
Zend\Expressive\ErrorMiddlewarePipe. It composes aZend\Stratigility\MiddlewarePipe, but implements the error middleware signature via its own__invoke()method.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #277 updates the
MarshalMiddlewareTraitto create and return anErrorMiddlewarePipewhen the$forErrorargument provided indicates error middleware is expected. This fix allows defining arrays of error middleware via configuration.
Expressive 1.0.0rc6
Sixth release candidate.
This release contains backwards compatibility breaks with previous release candidates. All previous functionality should continue to work, but will emit E_USER_DEPRECATED notices prompting you to update your application. In particular:
- The routing middleware has been split into two separate middleware implementations, one for routing, another for dispatching. This eliminates the need for the route result observer system, as middleware can now be placed between routing and dispatching — an approach that provides for greater flexibility with regards to providing route-based functionality.
- As a result of the above,
Zend\Expressive\Applicationno longer implementsZend\Expressive\Router\RouteResultSubjectInterface, though it retains the methods associated (each emits a deprecation notice). - Configuration for
Zend\Expressive\Container\ApplicationFactorywas modified to implement themiddleware_pipelineas a single queue, instead of segregating it betweenpre_routingandpost_routing. Each item in the queue follows the original middleware specification from those keys, with one addition: aprioritykey can be used to allow you to granularly shape the execution order of the middleware pipeline.
A migration guide was written to help developers migrate to RC6 from earlier versions.
Added
- #255 adds documentation for the base path functionality provided by the
UrlHelperclass of zend-expressive-helpers. - #227 adds a section on creating localized routes, and setting the application locale based on the matched route.
- #244 adds a recipe on using middleware to detect localized URIs (vs using a routing parameter), setting the application locale based on the match detected, and setting the
UrlHelperbase path with the same match. - #260 adds a recipe on how to add debug toolbars to your Expressive applications.
- #261 adds a flow/architectural diagram to the "features" chapter.
- #262 adds a recipe demonstrating creating classes that can intercept multiple routes.
- #270 adds new methods to
Zend\Expressive\Application:dispatchMiddleware()is new middleware for dispatching the middleware matched by routing (this functionality was split fromrouteMiddleware()).routeResultObserverMiddleware()is new middleware for notifying route result observers, and exists only to aid migration functionality; it is marked deprecated!pipeDispatchMiddleware()will pipe the dispatch middleware to theApplicationinstance.pipeRouteResultObserverMiddleware()will pipe the route result observer middleware to theApplicationinstance; likerouteResultObserverMiddleware(), the method only exists for aiding migration, and is marked deprecated.
- #270 adds
Zend\Expressive\MarshalMiddlewareTrait, which is composed byZend\Expressive\Application; it provides methods for marshaling middleware based on service names or arrays of services.
Deprecated
- #270 deprecates the following methods in
Zend\Expressive\Application, all of which will be removed in version 1.1:attachRouteResultObserver()detachRouteResultObserver()notifyRouteResultObservers()pipeRouteResultObserverMiddleware()routeResultObserverMiddleware()
Removed
- #270 removes the
Zend\Expressive\Router\RouteResultSubjectInterfaceimplementation fromZend\Expressive\Application. - #270 eliminates the
pre_routing/post_routingterminology from themiddleware_pipeline, in favor of individually specifiedpriorityvalues in middleware specifications.
Fixed
- #263 typo fixes in documentation
Expressive 1.0.0rc5
Fifth release candidate.
Added
- #233 adds a documentation page detailing projects using and tutorials written on Expressive.
- #238 adds a cookbook recipe detailing how to handle serving an Expressive application from a subdirectory of your web root.
- #239 adds a cookbook recipe detailing how to create modular Expressive applications.
- #243 adds a chapter to the helpers section detailing the new
BodyParseMiddleware.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #234 fixes the inheritance tree for
Zend\Expressive\Exception\RuntimeExceptionto inherit fromRuntimeExceptionand notInvalidArgumentException. - #237 updates the Pimple documentation to recommend
xtreamwayz/pimple-container-interopinstead ofmouf/pimple-interop, as the latter consumed Pimple v1, instead of the current stable v3.
Expressive 1.0.0rc3
Third release candidate.
Added
- #185 Support casting zend-view models to arrays.
- #192 adds support for specifying arrays of middleware both when routing and when creating pipeline middleware. This feature is opt-in and backwards compatible; simply specify an array value that does not resolve as a callable. Values in the array must be callables, service names resolving to callable middleware, or fully qualified class names that can be instantiated without arguments, and which result in invokable middleware.
- #200, #206, and #211 add functionality for observing computed
RouteResults.Zend\Expressive\Applicationnow implementsZend\Expressive\Router\RouteResultSubjectInterface, which allows attachingZend\Expressive\RouteResultObserverInterfaceimplementations and notifying them of computedRouteResultinstances. The following methods are now available on theApplicationinstance:attachRouteResultObserver(Router\RouteResultObserverInterface $observer)detachRouteResultObserver(Router\RouteResultObserverInterface $observer)notifyRouteResultObservers(RouteResult $result);Applicationcalls this internally withinrouteMiddleware.
This feature enables the ability to notify objects of the calculatedRouteResultwithout needing to inject middleware into the system.
- #81 adds a cookbook entry for creating 404 handlers.
- #210 adds a documentation section on the new zendframework/zend-expressive-helpers utilities.
Deprecated
- Nothing.
Removed
- #204 removes the
RouterandTemplatecomponents, as they are now shipped with the following packages, respectively:- zendframework/zend-expressive-router
- zendframework/zend-expressive-template This package has been updated to depend on each of them.
Fixed
- #187 Inject the route result as an attribute
- #197 updates the
Zend\Expressive\Container\ApplicationFactoryto raise exceptions in cases where received configuration is unusable, instead of silently ignoring it. This is a small backwards compatibility break, but is done to eliminate difficult to identify issues due to bad configuration. - #202 clarifies that
RouterInterfaceimplements MUST throw aRuntimeExceptionifaddRoute()is called after eithermatch()orgenerateUri()have been called.
Expressive 0.3.0
Added
- #128 adds container factories for each supported template implementation:
Zend\Expressive\Container\Template\PlatesFactoryZend\Expressive\Container\Template\TwigFactoryZend\Expressive\Container\Template\ZendViewFactory
- #128 adds custom
urlandserverUrlzend-view helper implementations, to allow integration with any router and with PSR-7 URI instances. The newly addedZendViewFactorywill inject these into theHelperPluginManagerby default.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #128 fixes an expectation in the
WhoopsErrorHandlertests to ensure the tests can run successfully.
Expressive 0.2.0
Added
- #116 adds
Application::any()to complement the various HTTP-specific routing methods; it has the same signature asget(),post(),patch(), et al, but allows any HTTP method. - #120 renames the router classes for easier discoverability, to better reflect their usage, and for better naming consistency.
AurabecomesAuraRouter,FastRoutebecomesFastRouteRouterandZf2becomesZf2Router.
Deprecated
- Nothing.
Removed
- #120 removes the classes
Zend\Expressive\Router\Aura,Zend\Expressive\Router\FastRoute, andZend\Expressive\Router\Zf, per the "Added" section above.
Fixed
- Nothing.
Expressive 0.1.1
Added
- #112 adds a chapter to the documentation on using Aura.Di (v3beta) with zend-expressive.
Deprecated
- Nothing.
Removed
- Nothing.
Fixed
- #118 fixes an issue whereby route options specified via configuration were not being pushed into generated
Routeinstances before being passed to the underlying router.
Expressive 0.1.0
Initial release!
Please read our documentation for the list of features, a quick start guide, and reference documentation for usage of the project.