[TOC]
### 组件说明
> Lying内置了请求组件,其实就是一些获取请求参数的函数封装。
### 配置选项
| 配置名 | 参数类型 | 可选 | 默认值 | 说明 |
| --- | --- | --- | --- | --- |
| class | string | 是 | lying\service\Request | 不可更改 |
### 示例配置
Request组件暂时不需要配置,可直接使用
### 调用方式
~~~php
\Lying::$maker->get('request');
\Lying::$maker->request();
\Lying::$maker->request;
~~~
### 方法列表
~~~php
$request = \Lying::$maker->request();
$request->resolve(); //获取当前请求的路由
$request->get($name = null, $defaultValue = null); //返回GET参数,如果不设置$name,则返回整个GET数组
$request->post($name = null, $defaultValue = null); //返回POST参数,如果不设置$name,则返回整个POST数组
$request->file($name = null); //获取上传的文件
$request->method(); //返回请求方法,如:GET/POST/HEAD/PUT/PATCH/DELETE/OPTIONS/TRACE
$request->isGet(); //是否为GET请求
$request->isPost(); //是否为POST请求
$request->isAjax(); //是否为AJAX请求
$request->isPjax(); //是否为PJAX请求
$request->rawBody(); //返回请求的原始数据php://input
$request->isHttps(); //是否为HTTPS请求
$request->isCli(); //判断是否在CLI模式下运行
$request->getArgv($offect = null, $defaultValue = null); //获取CLI下的参数,不填写返回所有参数数组
$request->getArgc(); //令行模式下传递给该脚本的参数的数目
$request->serverPort(); //返回服务器端口
$request->serverIP(); //返回服务器IP
$request->host($schema = false); //返回HOST
$request->queryString(); //返回查询字符串
$request->uri(); //返回REQUEST_URI:/index.php?a=1形式的字符串
$request->userAgent(); //返回请求的UA
$request->userIP(); //返回客户端真实IP,失败返回空字符串
$request->userPort(); //返回客户端端口
$request->time($millisecond = false); //返回请求开始时间
$request->getHeader($header = null); //获取请求header
$request->getCsrfToken(); //获取csrfToken
$request->validateCsrfToken($csrfToken = null); //校验csrfToken
~~~
### 其他说明
* get/post/file支持读取多维数组
~~~php
$request->get('user.name'); //$_GET['user']['name']
$request->post('user.info.sex'); //$_POST['user']['info']['sex']
$request->file('file.license');
~~~
### 文件上传
```php
$file = $request->file('file');
if (is_array($file)) {
foreach($file as $f) {
//获取其他信息,同else if操作
$f->move('/data/uploads', 'abc.jpg'); //移动上传的文件并重命名
}
} else if ($file) {
$file->getClientName(); //获取客户端文件名
$file->getClientMimeType(); //获取客户端文件的MIME类型;此MIME类型在PHP端并不检查,因此不要想当然认为有这个值
$file->getClientSize(); //获取已上传文件的大小,单位为字节
$file->getClientExtension(); //获取客户端文件扩展名
$file->getClientFilename(); //获取客户端文件文件名(不包含后缀)
$file->getMimeType(); //根据文件内容获取mime类型
$file->getMd5(); //获取文件的MD5
$file->getSha1(); //获取文件的sha1
$file->isImage(); //判断文件是否为图片类型
$file->isValid(); //返回是否是合法的上传文件
$file->getError(); //获取错误信息(move失败后)
$file->getRealPath(); //获取文件的绝对路径
$file->move('/data/uploads'); //移动上传的文件到指定目录
}
```
> 文件move成功返回图片的绝对路径,失败返回false
- 序言
- 更新日志
- 安装
- 规范
- 常量
- 配置
- 自动加载
- MVC
- 模块
- 控制器
- 模型
- 视图
- php原生模板
- 模板引擎
- 变量输出
- 模板注释
- 模板继承
- 模板引用
- 流程控制
- 原样输出
- 服务组件
- Hook组件
- Request组件
- Router组件
- Cookie组件
- Encrypter组件
- Dispatch组件
- Response组件
- View组件
- Session组件
- Helper组件
- 数据分页
- 数据验证
- Logger组件
- Cache组件
- Redis组件
- Connection组件
- 执行sql语句
- 查询生成器
- 查询方法详解
- Schema
- Captcha组件
- CLI
- CLI工具
- 事件
- 类事件
- 实例事件
- 全局事件
- 助手函数
- 扩展
- 异常
- 部署
- Apache
- Nginx
- IIS
- 虚拟主机