多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 请求-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