> # 控制器
<br/>
> 控制器定义请统一定义在模块/controller目录下,控制器文件名字母请大写。
> 控制器请继承\FastSwoole\Library\Controller方可使用 request、response 对象
<br/>
控制器中请求对象request:
```
$this->request
```
控制器中响应对象response:
```
$this->response
```
*****
> 1、关于这两个对象来自swoole,可查看swoole相关文档:https://wiki.swoole.com/wiki/page/328.html
> 2、在控制器中可以直接return字符串、数组、模板引擎,return如果是数组会自动转换为json返回
<br/>
### **fastSwoole封装了一些方法方便使用,如果不够,请自行使用request、response对象**:
获取get+post所有请求参数:
```
//返回一个数组
$param = $this->params();
```
获取get请求参数:
```
//第二个参数是默认值,如果没有key的情况下返回默认值
$param = $this->get("get参数","默认值");
```
获取post请求参数:
```
//第二个参数是默认值,如果没有key的情况下返回默认值
$param = $this->post("post参数","默认值");
```
获取header参数:
例如通常api接口的token会写在header,可以用这个方法获取到header参数
```
//第二个参数是默认值,如果没有key的情况下返回默认值
$token = $this->header("token","");
```
获取上传文件:
> 当$request对象销毁时,会自动删除上传的临时文件
```
//文件上传默认路径在\public\uploads
$file = $this->file("文件参数名");
var_dump($file);
Array
(
[name] => facepalm.jpg
[type] => image/jpeg
[tmp_name] => /tmp/swoole.upfile.n3FmFr
[error] => 0
[size] => 15476
)
//name 浏览器上传时传入的文件名称
//type MIME类型
//tmp_name 上传的临时文件,文件名以/tmp/swoole.upfile开头
//size 文件尺寸
//swoole1.9.10以上版本支持is_uploaded_file和move_uploaded_file函数
```
重定向:
```
//第一个参数重定向url,第二个参数状态码
$this->redirect("http://www.baidu.com", 302);
```
返回字符串:
```
return "hello world";
```
返回json:(直接返回数组会自动转换json)
```
return ["name" => "panco"];
```