初識(shí)ThinkPHP控制器
本文的重點(diǎn)講解的ThinkPHP控制器的定義、基本操作內(nèi)容,希望大家可以對(duì)ThinkPHP控制器有初步的了解。
最基本的控制器:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index(){ } public function hello(){ echo 'hello'; } }
控制器的名稱采用駝峰法命名(首字母大寫(xiě)),控制器文件位于 Application/Home/Controller/IndexController.class.php
IndexController控制器類的hello方法就是操作方法,訪問(wèn)下面的URL地址:
http://serverName/Home/Index/hello
就會(huì)輸出"hello"
前置和后置操作:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function _before_index(){ echo "index.before<br>"; } public function index(){ echo "index<br>"; } public function _after_index(){ echo "index.after<br>"; } }
配置ACTION_SUFFIX改變操作方法書(shū)寫(xiě)方式:
因?yàn)椴僮鞣椒ň褪强刂破鞯囊粋€(gè)方法,所以遇到有和系統(tǒng)的關(guān)鍵字沖突的方法可能就不能定義了,這個(gè)時(shí)候我們可以設(shè)置操作方法的后綴來(lái)解決,例如
'ACTION_SUFFIX' => 'Action', // 操作方法后綴
設(shè)置操作方法的后綴為Action,這樣,控制器的操作方法定義調(diào)整為:
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function listAction(){ echo 'list'; } public function helloAction(){ echo 'hello'; } public function testAction(){ echo 'test'; } }
空控制器和空操作方法:
空操作是指系統(tǒng)在找不到請(qǐng)求的操作方法的時(shí)候,會(huì)定位到空操作(_empty)方法來(lái)執(zhí)行,利用這個(gè)機(jī)制,我們可以實(shí)現(xiàn)錯(cuò)誤頁(yè)面和一些URL的優(yōu)化。
上圖所示,當(dāng)訪問(wèn):
http://serverName/index.php/Home/City/beijing/
由于City控制器并沒(méi)有定義beijing、shanghai或者shenzhen操作方法,因此系統(tǒng)會(huì)定位到空操作方法 _empty中去解析,_empty方法的參數(shù)就是當(dāng)前URL里面的操作名,因此會(huì)看到依次輸出的結(jié)果是:
你是怎么找到我的?
操作綁定到類: (作用:可以實(shí)現(xiàn)為每個(gè)操作方法定義一個(gè)類,而不是控制器類的一個(gè)方法)
以URL訪問(wèn)為 http://serverName/Home/Index/index為例,
原來(lái)的控制器文件定義位置為:Application/Home/Controller/IndexController.class.php
控制器類的定義如下:
namespace Home\Controller; use Think\Controller; class IndexController extends Controller{ public function index(){ echo '執(zhí)行Index控制器的index操作'; } }
可以看到,實(shí)際上我們調(diào)用的是 Home\Controller\IndexController 類的index方法。
通過(guò)配置文件設(shè)置參數(shù)
'ACTION_BIND_CLASS' => True,
設(shè)置后,控制器文件位置改為:Application/Home/Controller/Index/index.class.php
控制器類的定義如下:
namespace Home\Controller\Index; use Think\Controller; class index extends Controller{ public function run(){ echo '執(zhí)行Index控制器的index操作'; } }
現(xiàn)在,我們調(diào)用的其實(shí)是 Home\Controller\Index\index 類的run方法。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家學(xué)習(xí)php程序設(shè)計(jì)有所幫助。
相關(guān)文章
php原生數(shù)據(jù)庫(kù)分頁(yè)的代碼實(shí)例
在本篇內(nèi)容中小編給大家分享了關(guān)于php原生數(shù)據(jù)庫(kù)分頁(yè)的代碼實(shí)例的簡(jiǎn)單介紹,需要的朋友們跟著學(xué)習(xí)下。2019-02-02使用PHP處理數(shù)據(jù)庫(kù)數(shù)據(jù)如何將數(shù)據(jù)返回客戶端并顯示當(dāng)前狀態(tài)
這篇文章給大家介紹使用php處理大量數(shù)據(jù),每處理一個(gè)數(shù)據(jù)返回客戶端顯示當(dāng)前狀態(tài)的方法,對(duì)PHP處理數(shù)據(jù)庫(kù)數(shù)據(jù)返回客戶端并顯示當(dāng)前狀態(tài)的相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-02-02在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量
今天小編就為大家分享一篇在Laravel 的 Blade 模版中實(shí)現(xiàn)定義變量,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10PHP將字符串首字母大小寫(xiě)轉(zhuǎn)換的實(shí)例
下面小編就為大家?guī)?lái)一篇PHP將字符串首字母大小寫(xiě)轉(zhuǎn)換的實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01ThinkPHP快速入門實(shí)例教程之?dāng)?shù)據(jù)分頁(yè)
這篇文章主要介紹了ThinkPHP快速入門實(shí)例教程的數(shù)據(jù)分頁(yè)實(shí)現(xiàn)過(guò)程,需要的朋友可以參考下2014-07-07