sheridan/version-middleware

用于管理路由版本化的PSR-7中间件。

dev-master 2023-09-05 08:38 UTC

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);
}