【发布时间】:2016-06-02 01:16:18
【问题描述】:
我正在尝试完成我使用 Slim 框架编写的 API 的 API 版本控制。
我所有的版本化 API 如下所示:
$app->get('/:version/book/search', function() {...});
我正在尝试为此版本创建一个应用程序范围的路由条件,如下所示:
\Slim\Route::setDefaultConditions(array(
'version' => 'v[3-6]'
));
所以只有版本号为 v3、v4、v5 和 v6 的 API 应该被允许获取它。
我的要求是存储在 $app->version 中进行的 API 调用的确切版本,然后根据需要进行版本特定的代码更改。我创建了一个中间件,我将其添加到 $app 本身,因此它会为每个 API 调用执行:
$app->add(new \GetVerMiddleware());
class GetVerMiddleware extends \Slim\Middleware
{
public function call()
{
// HOW TO GET THE version route parameter??
// ????
$app->version = $version;
$this->next->call();
}
}
所以我想知道如何获取GetVerMiddleware里面的路由参数版本。甚至有可能得到那个吗?我知道如何打印整个路线(link),但我只对版本参数感兴趣。
【问题讨论】:
标签: php slim middleware