|
http://servername/appName/moduleName/actionName/params
來(lái)獲取當(dāng)前需要執(zhí)行的項(xiàng)目(appName)、 模塊(moduleName)和操作(actionName),在某些情況下,appName可以不需要(通常是網(wǎng)站的首頁(yè),因?yàn)轫?xiàng)目名稱可以在入口文件 中指定,這種情況下,appName就會(huì)被入口文件替代)。在復(fù)雜一點(diǎn)的情況下面,可能還會(huì)出現(xiàn)分組(groupName)。
每個(gè)模塊是一個(gè)Action文件,類似于我們平常所說(shuō)的控制器,系統(tǒng)會(huì)自動(dòng)尋找項(xiàng)目類庫(kù)Action目錄下面的相關(guān)類,如果沒(méi)有找到,則會(huì)定位到空模塊,否則拋出異常。
而actionName操作是首先判斷是否存在Action類的公共方法,如果不存在則會(huì)繼續(xù)尋找父類中的方法,如果依然不存在,就會(huì)尋找是否存在自動(dòng)匹配的模版文件。如果存在模版文件,那么就直接渲染模版輸出。
因此應(yīng)用開(kāi)發(fā)中的一個(gè)重要過(guò)程就是給不同的模塊定義具體的操作。一個(gè)應(yīng)用如果不需要和數(shù)據(jù)庫(kù)交互的時(shí)候可以不需要定義模型類,但是必須定義Action控制器。 Action控制器的定義非常簡(jiǎn)單,只要繼承Action基礎(chǔ)類就可以了,例如:microfiber cloth
復(fù)制代碼 代碼如下:
class UserAction extends Action{
}
如果我們要執(zhí)行下面的URL
http://servername/index.php/User/add
你需要增加一個(gè)add方法就可以了,例如
折疊php Code復(fù)制內(nèi)容到剪貼板
復(fù)制代碼 代碼如下:
class UserAction extends Action{
// 定義一個(gè)add操作方法,注意操作方法不需要任何參數(shù)
Public function add(){
// add操作方法的邏輯實(shí)現(xiàn)
// …… bath rug
$this->display(); // 輸出模板頁(yè)面
}
}
操作方法必須定義為Public類型,否則會(huì)報(bào)錯(cuò)。并注意操作方法的命名不要和內(nèi)置的Action類的方法重復(fù)。系統(tǒng)會(huì)自動(dòng)定位當(dāng)前操作的模板文件,而默認(rèn)的模板文件應(yīng)該位于項(xiàng)目目錄下面的Tpl/default/User/add.html。
php技術(shù):ThinkPHP采用模塊和操作分析,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。