ThinkPHP5.1學(xué)習(xí)筆記 - 請(qǐng)求

一、簡(jiǎn)介

在ThinkPHP5中,所有的請(qǐng)求都被封閉到請(qǐng)求對(duì)象think\Request類中,在很多場(chǎng)合下并不需要實(shí)例化調(diào)用,通常使用依賴注入即可。在其它場(chǎng)合(例如模板輸出等)則可以使用think\facade\Request靜態(tài)類操作。

總結(jié)如下,獲取ThinkPHP5中請(qǐng)求獲取一個(gè)請(qǐng)求資源可以通過(guò)以下三種方法:
1)依賴注入(由think\Request類負(fù)責(zé))
2)使用 think\facade\Request 靜態(tài)類
3)助手函數(shù)(request()

ThinkPHP關(guān)于請(qǐng)求的核心方法都定義于核心文件thinkphp\library\think\Request.php中。

二、獲取請(qǐng)求對(duì)象

1、依賴注入

1)構(gòu)造方法注入

/**
* 構(gòu)造方法
* @param Request $request Request對(duì)象
* @access public
* 需要:use think\Request;
*/
public function __construct(Request $request)
{
    $this->request = $request;
}
    

2)繼承控制器基類think\Controller
如果你繼承了系統(tǒng)的控制器基類think\Controller的話,系統(tǒng)已經(jīng)自動(dòng)完成了請(qǐng)求對(duì)象的構(gòu)造方法注入了,你可以直接使用$this->request屬性調(diào)用當(dāng)前的請(qǐng)求對(duì)象。

namespace app\index\controller;
use think\Controller;

class Index extends Controller
{
    public function index() {
        return $this->request->param();
    }    
}

3)也可以在每個(gè)方法中使用依賴注入

public function index(Request $request) {
    return $request->param('name');
}  

2、其它

通過(guò)助手函數(shù) 和 Facade調(diào)用 的方式這里不做詳細(xì)介紹,詳情可以查看官方文檔。

三、Request常用方法

1、URL

方法 含義 例子
host 當(dāng)前訪問(wèn)域名或者IP nosee123.com
scheme 當(dāng)前訪問(wèn)協(xié)議 http
port 當(dāng)前訪問(wèn)的端口 80
domain 當(dāng)前包含協(xié)議的域名 http://nosee123.com
url 獲取完整URL地址 不帶域名 /Index/welcome
url(true) 獲取完整URL地址 包含域名 http://nosee123.com/Index/welcome

2、路由

方法 含義
module 獲取當(dāng)前模塊
controller 獲取當(dāng)前控制器
action 獲取當(dāng)前操作方法

3、請(qǐng)求頭

$data = $request->header();
echo '<pre>';
var_dump($data);

//獲取結(jié)果:
array(11) {
  ["cookie"]=>  string(36) "PHPSESSID=r6s2pe5eausr4l0o1j5tfi57eo"
  ["accept-language"]=>  string(14) "zh-CN,zh;q=0.8"
  ["accept-encoding"]=>  string(19) "gzip, deflate, sdch"
  ["referer"]=>  string(35) "http://nosee123.com/Index/index.html"
  ["accept"]=>  
  string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
  ["user-agent"]=>
  string(128) "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 SE 2.X MetaSr 1.0"
  ["upgrade-insecure-requests"]=>  string(1) "1"
  ["connection"]=>  string(10) "keep-alive"
  ["host"]=>  string(11) "nosee123.com"
  ["content-length"]=>  string(0) ""
  ["content-type"]=>  string(0) ""
}

4、請(qǐng)求數(shù)據(jù)

方法 含義 例子
method 當(dāng)前請(qǐng)求類型(大寫(xiě)) GET
isGet、isPost、isPut、isDelete等 判斷是否是某種請(qǐng)求
isMobile 判斷是否手機(jī)訪問(wèn) false
isAjax 判斷是否AJAX請(qǐng)求 false
param 獲取當(dāng)前的請(qǐng)求數(shù)據(jù),包括post、get等
post 獲取post請(qǐng)求數(shù)據(jù)
get 獲取get請(qǐng)求數(shù)據(jù)

四、參數(shù)綁定

參數(shù)綁定是把當(dāng)前請(qǐng)求的變量作為操作方法(也包括架構(gòu)方法)的參數(shù)直接傳入,參數(shù)綁定并不區(qū)分請(qǐng)求類型。

詳情可以查看官方文檔:https://www.kancloud.cn/manual/thinkphp5_1/353991

參考

官方手冊(cè):https://www.kancloud.cn/manual/thinkphp5_1/353985

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 閱讀原文 一、容器與依賴注入的原理 任何的URL訪問(wèn),最終都是定位到控制器,由控制器中某個(gè)具體的方法去執(zhí)行 一個(gè)控...
    圓咚咚CodingLife閱讀 1,892評(píng)論 0 3
  • 理工寢室商店-微信小程序 疑問(wèn)小結(jié) 當(dāng)時(shí)在XAMMP下mysql目錄下的bin下 php -v 不起作用.到ph...
    這個(gè)超人不會(huì)飛阿閱讀 1,822評(píng)論 1 1
  • 一、簡(jiǎn)介 你可以把行為理解成是“在程序執(zhí)行過(guò)程中的某一個(gè)位置會(huì)調(diào)起一個(gè)或一類事件”的動(dòng)作。行為發(fā)生作用的位置我們稱...
    四月不見(jiàn)閱讀 754評(píng)論 0 1
  • ① 小熒第一次見(jiàn)到阿鵬,是在小學(xué)四年級(jí)。 阿鵬背著一個(gè)特別大的書(shū)包,站在講臺(tái)上做自我介紹。那個(gè)大書(shū)包讓他看起來(lái)特別...
    安洛塵_yxh閱讀 1,178評(píng)論 0 0
  • 感覺(jué)生活有點(diǎn)兒空,每天就學(xué)學(xué)習(xí),看看劇,練練琴,偶爾自己去逛逛街,然后一天就這樣過(guò)去了。很多時(shí)候,會(huì)花一下午的時(shí)間...
    Ashley壹生閱讀 979評(píng)論 0 0

友情鏈接更多精彩內(nèi)容