sheridan / version-middleware
用于管理路由版本化的PSR-7中间件。
dev-master
2023-09-05 08:38 UTC
Requires
- php: ^7.2
- psr/container: ^1.0
- psr/http-message: ^1.0
- psr/http-server-middleware: ^1.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^7.3
- psr/http-server-handler: ^1.0
- roave/security-advisories: dev-master
- squizlabs/php_codesniffer: ^2.7
- zendframework/zend-diactoros: ^2.1
This package is auto-updated.
Last update: 2024-09-05 11:01:20 UTC
README
从URL路径提供版本控制,为Zend Expressive编写。
安装
使用composer安装
$ composer require sheridan/version-middleware
使用方法
添加到管道
use Psr7Versioning\VersionMiddleware;
...
$app->pipe(ServerMiddleware::class);
$app->pipe(VersionMiddleware::class);
$app->pipe(RouteMiddleware::class);
...
路由
现在您可以根据路径添加路由,例如
$app->get('/home', 'Handler\HomePageHandler::class', 'home');
$app->get('/dev/home', 'Handler\dev\HomePageHandler::class', 'home.dev');
$app->get('/latest/home', 'Handler\latest\HomePageHandler::class', 'home.latest');
$app->get('/legacy/home', 'Handler\legacy\HomePageHandler::class', 'home.legacy');
$app->get('/v1/home', 'Handler\v1\HomePageHandler::class', 'home.v1');
$app->get('/v2/home', 'Handler\v2\HomePageHandler::class', 'home.v2');
内置的版本路由有
- dev
- latest
- legacy
- vnnn(其中nnn是一个数字)
从请求中获取版本号
use Psr7Versioning\VersionMiddleware;
...
public function handle (ServerRequest $request) : ResponseInterface
{
// get current version (ie dev | latest)
$version = $request->getAttribute(VersionMiddleware::class);
}