## Route strategies路由策略
The route callback signature is determined by a route strategy. By default, Slim expects route callbacks to accept the request, response, and an array of route placeholder arguments. This is called the RequestResponse strategy. However, you can change the expected route callback signature by simply using a different strategy. As an example, Slim provides an alternative strategy called `RequestResponseArgs` that accepts request and response, plus each route placeholder as a separate argument.
> 路由回调签名由路由策略决定。
>
> 默认情况下,Slim期望路由回调接受请求、响应和路由占位符参数数组。
>
> 这称为RequestResponse策略。
>
> 但是,您可以通过简单地使用不同的策略来更改预期的路由回调签名。
>
> 例如,Slim提供了一个名为`RequestResponseArgs`的替代策略,该策略接受请求和响应,并将每个路由占位符作为单独的参数。
Here is an example of using this alternative strategy:
> 下面是一个使用这种替代策略的例子:
~~~php
<?php
use Slim\Factory\AppFactory;
use Slim\Handlers\Strategies\RequestResponseArgs;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
/**
* 更改RouteCollector组件上的默认调用策略
* 在应用此更改后,将为每个定义的路由更改它
* Changing the default invocation strategy on the RouteCollector component
* will change it for every route being defined after this change being applied
*/
$routeCollector = $app->getRouteCollector();
$routeCollector->setDefaultInvocationStrategy(new RequestResponseArgs());
$app->get('/hello/{name}', function ($request, $response, $name) {
return $response->write($name);
});
~~~
Alternatively you can set a different invocation strategy on a per route basis:
> 或者,您可以根据每个路由设置不同的调用策略:
~~~php
<?php
use Slim\Factory\AppFactory;
use Slim\Handlers\Strategies\RequestResponseArgs;
require __DIR__ . '/../vendor/autoload.php';
$app = AppFactory::create();
$routeCollector = $app->getRouteCollector();
$route = $app->get('/hello/{name}', function ($request, $response, $name) {
return $response->write($name);
});
$route->setInvocationStrategy(new RequestResponseArgs());
~~~
You can provide your own route strategy by implementing the`Slim\Interfaces\InvocationStrategyInterface`.
> 可以通过实现`Slim\Interfaces\InvocationStrategyInterface`来提供您自己的路由策略
- 开始
- 安装
- 升级指南
- Web服务器
- 概念
- 生命周期
- PSR 7
- 中间件
- 依赖容器
- 实例 及通知和警告处理
- Request
- 请求方法
- 请求头信息
- 请求主体
- 上传的文件
- 请求帮助
- 路由对象
- Response
- 响应状态
- 响应标头
- 响应体
- 返回JSON
- 视图模板
- 路由
- 创建路由
- 路由回调
- 路由策略
- 路线占位符
- 路由名
- 路由组
- 路由中间件
- 路由表达式缓存
- 容器识别解析
- 封装中间件
- 路由的中间件
- 错误处理中间件
- 方法重写的中间件
- 输出缓冲中间件
- 内容长度中间件
- 扩展功能
- 以 / 结尾的路由模式
- 获取当前路由
- 设置CORS
- 使用POST表单上传文件
- 第三方组件
- slim-session
- auth
- slim-api-skeleton
- dir