Download the PHP package marcguyer/version-middleware without Composer
On this page you can find all versions of the php package marcguyer/version-middleware. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download marcguyer/version-middleware
More information about marcguyer/version-middleware
Files in marcguyer/version-middleware
Package version-middleware
Short Description PSR-7 middleware for managing routable versioning.
License BSD-3-Clause
Informations about the package version-middleware
Versioning for PSR-7 apps
Provides version detection, making versioned resource routing possible in PSR-7 applications.
Installation
Install this library using composer:
Composer will ask if you'd like to inject the ConfigProvider if you're using zendframework/zend-component-installer
. Answer yes or config it by hand.
Usage
Config
See the ConfigProvider for config defaults. You may override using the versioning
key. For example, the default version is 1
. You might release a new version and set the default version to 2
. Any clients not specifying a version via path or header will then be hitting version 2 resources.
Add to pipeline
Wire this middleware into your pipeline before routing. An example using a Zend Expressive pipeline:
Routing
Now, you can route based on the rewritten URI path. For example, in Expressive:
Namespaced version
Now, using the above routing example, assuming your v1 Ping is in namespace Api\Handler
, you may set the namespace for v2 Ping to be Api\V2\Handler
and extend the v1 handler. Any reference to services, models, other middleware will follow that namespace. Or, copy everything you want to be in the new version into a new namespace entirely.
Contributing
Docker Image
The Dockerfile
in the repo can be used to create a lightweight image locally for running tests and other composer scripts:
Run tests
All versions of version-middleware with dependencies
psr/container Version ^1.0
psr/http-message Version ^1.0
psr/http-server-middleware Version ^1.0