ThinkPHP控制器

5個(gè)屬性

1.試圖類實(shí)例對(duì)象:protected $view;
2.請(qǐng)求類實(shí)例對(duì)象:protected $request;
3.驗(yàn)證失敗是否拋出異常:protected $failException=false;
4.是否批量驗(yàn)證:protected $batchValidate=false;
5.前置方法列表:protected $beforeActionList=[];

8個(gè)方法介紹

1.構(gòu)造方法:public function __construct(Request $request = null)
2.初始化方法:protected function _initialize(){}//默認(rèn)為空
3.加載模版:protected function fetch($template = ”, $vars = [], $replace = [], $config = [])
4.渲染內(nèi)容:protected function display($content = ”, $vars = [], $replace = [], $config = [])
5.模版變量賦值:protected function assign($name, $value = ”)
6.初始化模版引擎:protected function engine($engine)
7.驗(yàn)證失敗拋出異常:protected function validateFailException($fail = true)
8.驗(yàn)證數(shù)據(jù):protected function validate($data, $validate, $message = [], $batch = false, $callback = null)
總結(jié):任何學(xué)習(xí)方法嫉到,都替代不了閱讀源代碼然遏。閱讀源代碼矾瘾,不僅可以了解作者的編程思路台谊,還可以學(xué)到很多編程技巧肛响,是一種有效的學(xué)習(xí)方式。

什么是控制器嘿悬?什么是可訪問控制器副硅?

application下的index模塊下controller中的文件。

什么是操作爸业?什么是可訪問操作其骄?

控制器中的方法。
public function 方法是可訪問操作扯旷。

什么是命名空間拯爽?它與控制器或方法后綴的關(guān)系?

3個(gè)預(yù)置跟命名空間:application钧忽,think毯炮,traits。
命名空間:namespace app\index\controller;//類名=根空間+子空間(可選)+類名

5.0版本因?yàn)橛辛嗣臻g耸黑,所以不用加后綴桃煎,如果加上控制器加上后綴:可以防止類名和關(guān)鍵字沖突。

控制器的命名規(guī)范是什么崎坊?如何正確訪問控制器备禀?

UserLogin.php類訪問:協(xié)議+模塊+user_login+方法,輸入的url中大寫字母全部會(huì)自動(dòng)轉(zhuǎn)化為小寫洲拇。

為什么要自定義訪問控制器層奈揍?

為了項(xiàng)目規(guī)范。

為什么要?jiǎng)?chuàng)建多級(jí)控制器赋续?

分級(jí)管理男翰。

為什么要?jiǎng)?chuàng)建空操作和控制器?

對(duì)不存在的訪問的url進(jìn)行攔截纽乱。

在控制器中使用trait有什么好處蛾绎?

可以使用基于基類的方法。

什么是單一模塊?什么時(shí)候需要使用它?

// 是否支持多模塊‘a(chǎn)pp_multi_module’ => false,
使用單一模塊租冠,多級(jí)控制器完成網(wǎng)站前后端規(guī)劃鹏倘。

總結(jié):控制器的分級(jí)管理使項(xiàng)目邏輯更加清晰,空操作與空操作器使控制器具備了容錯(cuò)機(jī)制顽爹,trait的引入纤泵,使控制器可從多個(gè)trait類中繼承方法集,橫向擴(kuò)展了控制器的功能镜粤。

公共操作有什么用捏题?如何創(chuàng)建公共操作?

構(gòu)造方法創(chuàng)建公共操作肉渴,解決了操作共享數(shù)據(jù)的問題公荧。

公共控制器類有什么用?如何創(chuàng)建公共控制器同规?

控制器的公共操作來解決了類中數(shù)據(jù)共享以及屬性初始化的問題循狰。公共控制器,從控制器層面上捻浦,解決了控制器類之間的屬性和方法的共享問題晤揣。這是二個(gè)層面上的抽象,也是非常實(shí)用的技術(shù)朱灿。

什么是前置操作昧识?

第一步:創(chuàng)建前置操作方法;
第二步:配置前置操作列表盗扒。

為什么必須繼承基類Controller跪楞,才能創(chuàng)建前置操作?

用到基類中的前置操作方法侣灶。

前置操作有什么用甸祭?如何正確的使用它?

在之前的版本中褥影,除了前置操作池户,還有后置操作,不過在ThinkPHP5中凡怎,已經(jīng)取消了同雞肋的后置操作校焦。關(guān)于前置操作,可以想象成全部或部分方法的構(gòu)造函數(shù)统倒。其目的寨典,是為了項(xiàng)目規(guī)范,易維護(hù)房匆,好發(fā)展耸成。

頁面跳轉(zhuǎn)與重定向

1.頁面跳轉(zhuǎn)的目標(biāo)有哪些报亩?

調(diào)用方法:$this->success(‘提示’,’地址’) $this->error(‘提示’,’地址’)
1)當(dāng)前控制器 2)跨控制器 3)跨模塊 4)外部地址

2.如何設(shè)置URL訪問重定向?

調(diào)用方法:$this->redirect(‘路由地址’,[變量列表],”,’域名開關(guān)’)
1)站內(nèi)地址 2)外部地址

請(qǐng)求對(duì)象與參數(shù)綁定

1.請(qǐng)求變量與請(qǐng)求對(duì)象的關(guān)系井氢?
2.請(qǐng)求信息包括哪些弦追?
3.如果通過參數(shù)綁定來簡(jiǎn)化請(qǐng)求的URL地址?

總結(jié):用戶對(duì)所有網(wǎng)絡(luò)資源的訪問花竞,都要通過請(qǐng)求對(duì)象骗卜,以URL為載體進(jìn)行訪問。用戶需求的個(gè)性化是通過請(qǐng)求變量來體現(xiàn)左胞。

屬性注入與方法注入

1.屬性注入:\think\Request::instance()->屬性
2.方法注入:\think\Request::hook(‘方法’寇仓,’對(duì)應(yīng)函數(shù)’)

作用:給當(dāng)前請(qǐng)求對(duì)象綁定屬性和方法,請(qǐng)求對(duì)象在應(yīng)用的整個(gè)生命周期內(nèi)都有效的烤宙,不僅可以被當(dāng)前所有控制器方法所共享遍烦,還可以跨控制器和模塊進(jìn)行調(diào)用。
總結(jié):請(qǐng)求對(duì)象的屬性與方法注入躺枕,不僅可以擴(kuò)展請(qǐng)求對(duì)象的功能服猪,實(shí)現(xiàn)在整個(gè)應(yīng)用周期的信息共享,而且它還為自定義請(qǐng)求的行為制定了標(biāo)準(zhǔn)拐云。

請(qǐng)求對(duì)象依賴注入

1.依賴注入:改變了使用對(duì)象前罢猪,必須線創(chuàng)建對(duì)象的傳統(tǒng)方式,而是從外部注入所依賴的對(duì)象叉瘩;
2.Thinkphp5中依賴注入主要是指把對(duì)象注入到可訪問控制器膳帕;
3.注入方式:控制器的構(gòu)造方法和操作方法;
4.實(shí)現(xiàn)方式:對(duì)參數(shù)盡享兌現(xiàn)該類型約束則會(huì)自動(dòng)觸發(fā)依賴注入薇缅,自動(dòng)實(shí)例話該對(duì)象危彩。


總結(jié):訪問控制器的依賴注入,極大了方便了在操作中使用請(qǐng)求對(duì)象泳桦,它不需要依賴與控制器基類汤徽,也不需要倒入請(qǐng)求累命名空間,是一種高效的獲取請(qǐng)求對(duì)象方式灸撰。

ThinkPHP控制器(原文地址

結(jié)束谒府。


你們的支持也是我前進(jìn)的動(dòng)力,非常感謝支持浮毯!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末完疫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子亲轨,更是在濱河造成了極大的恐慌趋惨,老刑警劉巖鸟顺,帶你破解...
    沈念sama閱讀 218,682評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惦蚊,死亡現(xiàn)場(chǎng)離奇詭異器虾,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)蹦锋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門兆沙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莉掂,你說我怎么就攤上這事葛圃。” “怎么了憎妙?”我有些...
    開封第一講書人閱讀 165,083評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵库正,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我厘唾,道長(zhǎng)褥符,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,763評(píng)論 1 295
  • 正文 為了忘掉前任抚垃,我火速辦了婚禮喷楣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘鹤树。我一直安慰自己铣焊,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,785評(píng)論 6 392
  • 文/花漫 我一把揭開白布罕伯。 她就那樣靜靜地躺著曲伊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪追他。 梳的紋絲不亂的頭發(fā)上熊昌,一...
    開封第一講書人閱讀 51,624評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音湿酸,去河邊找鬼婿屹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛推溃,可吹牛的內(nèi)容都是我干的昂利。 我是一名探鬼主播,決...
    沈念sama閱讀 40,358評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼铁坎,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼蜂奸!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起硬萍,我...
    開封第一講書人閱讀 39,261評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤扩所,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后朴乖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祖屏,經(jīng)...
    沈念sama閱讀 45,722評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡助赞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了袁勺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雹食。...
    茶點(diǎn)故事閱讀 40,030評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖期丰,靈堂內(nèi)的尸體忽然破棺而出群叶,到底是詐尸還是另有隱情,我是刑警寧澤钝荡,帶...
    沈念sama閱讀 35,737評(píng)論 5 346
  • 正文 年R本政府宣布街立,位于F島的核電站,受9級(jí)特大地震影響埠通,放射性物質(zhì)發(fā)生泄漏几晤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,360評(píng)論 3 330
  • 文/蒙蒙 一植阴、第九天 我趴在偏房一處隱蔽的房頂上張望蟹瘾。 院中可真熱鬧,春花似錦掠手、人聲如沸憾朴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽众雷。三九已至,卻和暖如春做祝,著一層夾襖步出監(jiān)牢的瞬間砾省,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評(píng)論 1 270
  • 我被黑心中介騙來泰國打工混槐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留编兄,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,237評(píng)論 3 371
  • 正文 我出身青樓声登,卻偏偏與公主長(zhǎng)得像狠鸳,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子悯嗓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,976評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理件舵,服務(wù)發(fā)現(xiàn),斷路器脯厨,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 多層控制器的使用 TP3.23對(duì)控制器做了更加細(xì)致的分層铅祸,除了默認(rèn)的Controller層,還可以自定義事件控制層...
    阿V薄荷加可樂閱讀 1,492評(píng)論 2 3
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法合武,類相關(guān)的語法临梗,內(nèi)部類的語法涡扼,繼承相關(guān)的語法,異常的語法夜焦,線程的語...
    子非魚_t_閱讀 31,639評(píng)論 18 399
  • 一、寫在前面 這幾天準(zhǔn)備寫控制器中輸出模板的方法display岂贩,但在閱讀源碼的時(shí)候遇到了一點(diǎn)問題茫经。整個(gè)源碼我看了一...
    阿V薄荷加可樂閱讀 557評(píng)論 0 0
  • 在這夜里我又想起了你 太遙遠(yuǎn),太難忘 遇過多少美景良人 卻還是你 讓我魂?duì)繅?mèng)繞 浪子心 比石堅(jiān) 似水柔 呢喃細(xì)語 ...
    心命閱讀 309評(píng)論 0 4