# 请求-Request
在控制器继承了 Yaf\_Controller\_Abstract 便可以通过 $this->\_resquest 获取 所有的请求对象
yaf中的请求与响应在项目中不用手动初始化,在项目启动后会对其自动初始化,在控制中可以使用$this->getRequest()来获取当前请求对象
## 1.yaf官方请求处理
**(1)获取服务器及环境信息**
* getServer:获取服务器变量信息,类似于$\_SERVER全局变量
* getEnv:获取环境变量信息,类似于$\_ENV
* getLanguage:获取客户端的语言信息,如zh-CN
**(2)获取请求参数**
* get:获取GET请求数据
* getPost:获取POST请求数据
* getQuery : 获取查询字符串的信息
* getParam : 获取路由参数信息
* getParams : 获取所有路由参数信息
* getRequestUri : 获取请求的uri
* getMethod : 获取请求的类型
* getBaseUri : 获取请求的基本uri
* getCookie : 获取cookie信息
* getFiles : 获取请求中的文件信息
演示代码
~~~php
<?php
class TestController extends \Yaf_Controller_Abstract
{
public function init()
{
}
public function testAction()
{
$request = $this->getRequest();
var_dump($request->getRequestUri()); // 输出:/test/test
var_dump($request->getBaseUri()); // 输出:''
var_dump($request->getMethod()); // 输出GET
var_dump($request->getPost()); // 输出:array()
var_dump($request->getQuery()); // 输出: array()
var_dump($request->getParam('id')); // 输出:NULL
var_dump($request->getParams()); // 输出:array()
}
}
~~~
**(3)判断请求类型**
* isCli:是否为命令行
* isGet:是否为get请求
* isPost:是否为Post请求
* isPut:是否为PUT请求
* isHead:是否为Head请求
* isOptions:是否为Options请求
* isXmlHttpRequest:是否为ajax请求
~~~
$request = $this->getRequest();
var_dump($request->getMethod()); // 输出GET
var_dump($request->isCli()); //false
var_dump($request->isGet()); //true
var_dump($request->isPost()); //false
var_dump($request->isPut()); //false
var_dump($request->isHead()); //false
var_dump($request->isOptions()); //false
var_dump($request->isXmlHttpRequest()); //false
~~~
**(4)与分发相关的方法**
* getModuleName:获取当前模块名称
* getControllerName:获取当前控制器名称
* getActionName:获取当前操作名称
* getException:获取当前请求异常对象
* isDispatched:是否已经分发请求
* isRouted:是否已经将路由规则进行匹配
设置分发匹配
这个默认是系统分发时调用,如果是使用自定义路由协议,会使用到
* setBaseUri:设置基本的uri,一般不需要设置,框架会自动识别
* setModuleName:设置模块名称
* setControllerName:设置控制器名称
* setActionName:设置操作名称
* setParam:设置路由参数
* setRequestUri:设置请求uri
* setRouted:设置是否已经路由
* setDispatched:设置是否已经分发路由
## 2.使用助手函数
* 返回true(输入存在且有效)或者false,
* 输入结果存在$export中
* $filter为参数格式验证或者过滤方法支持:正则表达式,系统函数,php的filter\_var常量,自定义的验证过滤函数
~~~php
input('id',0); 获取id参数 自动判断get或者post
input('post.name','','htmlspecialchars'); 获取$_POST['name']
input('get.'); 获取$_GET
~~~
其中input包含以上三种方式支持cookie和env,$name未指定方法时读取$\_RESUQET
- 序言
- 安装 Yaf
- Yaf基础知识
- 1.运行流程
- 2.YAF架构
- 3.目录结构
- 4.Yaf的配置
- 5.Yaf的Bootstrap
- 6.Yaf的多模块配置
- 7.Yaf中使用命名空间
- 本书框架配置
- 1.框架目录结构
- 2.数据库配置
- 3.缓存配置
- 4.全局配置
- 5.公共助手函数
- 请求与响应
- 1.请求-Request
- 2.响应-Response
- 数据库操作
- 使用think-orm
- 接口开发
- 1.RESTful接口设计
- 2.Yar RPC接口设计
- 数据验证
- 数据验证 - validate
- 网页开发
- Session
- Cookie
- 路由设置
- 工具类
- 1.Rsa加密
- 2.Random快速生成随机数
- 3.Cache - 缓存
- 4.Weapp - 微信小程序类
- 5.Qiniu - 七牛云存储使用
- 6.支付类(微信&支付宝)
- 7.Logs - 日志记录