# 請求-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 - 日志記錄