本篇文章為大家展示了ThinkPHP3.1.2中的模塊與操作映射是什么意思,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。
模板和操作映射功能是ThinkPHP3.1.2版本支持的對(duì)模塊和操作設(shè)置的映射機(jī)制,由于可以通過(guò)改變配置動(dòng)態(tài)改變(實(shí)際真正改變,并非別名)URL訪問(wèn)地址,加強(qiáng)了應(yīng)用的安全性,而且,映射機(jī)制具有URL不區(qū)分大小寫訪問(wèn)的特性,對(duì)于應(yīng)用的遷移也有很大的幫助。
因?yàn)?,普通情況下,如果需要更改URL的模塊或者操作訪問(wèn)的話,需要改動(dòng)的文件較多,容易導(dǎo)致關(guān)聯(lián)性出錯(cuò)。尤其是很多應(yīng)用需要遷移到新版本的時(shí)候,由于模型和控制器改動(dòng)較多,導(dǎo)致URL地址出現(xiàn)大的調(diào)整,通過(guò)模塊和操作映射功能,就可以很輕松的解決此類問(wèn)題。
1.模塊映射
要定義模塊映射,我們只需要在配置文件中定義:
'URL_MODULE_MAP'=>array( 'user' => 'Member', 'blog' => 'Info', )
URL_MODULE_MAP是一個(gè)數(shù)組,每個(gè)數(shù)組項(xiàng)表示:
'模塊映射名'=>'實(shí)際模塊名'
映射名稱不區(qū)分大小寫,所以設(shè)置后,URL訪問(wèn)從原來(lái)的:
http://serverName/index.php/Member/index http://serverName/index.php/Info/index
變成了:
http://serverName/index.php/user/index http://serverName/index.php/blog/index
并且原來(lái)的訪問(wèn)URL是失效的,這也是和定義路由方式改變URL的區(qū)別之一。沒(méi)有定義映射的模塊訪問(wèn)不變。
定義了模塊映射后,可以通過(guò)MODULE_ALIAS常量讀取當(dāng)前模塊的URL名稱。
2.操作映射
不僅是模塊名稱可以映射,操作名稱也支持映射,而且是針對(duì)模塊來(lái)設(shè)置的,操作映射的定義方式為:
'URL_ACTION_MAP'=>array( 'Member' => array( 'register' => 'add', ), 'Info' => array( 'list' => 'index' ), )
URL_ACTION_MAP參數(shù)是一個(gè)二維數(shù)組,每個(gè)數(shù)組項(xiàng)表示:
'實(shí)際模塊名'=>array( '操作映射名1'=>'實(shí)際操作名1' '操作映射名2'=>'實(shí)際操作名2' ...... )
操作映射名不區(qū)分大小寫,如上定義后,URL訪問(wèn)從
http://serverName/index.php/Member/add http://serverName/index.php/Info/index
變成了(不考慮前面定義的模塊映射):
http://serverName/index.php/Member/register http://serverName/index.php/Info/list
同樣,原來(lái)的URL地址訪問(wèn)則失效。沒(méi)有定義映射的操作訪問(wèn)地址不變。
定義了操作映射后,可以通過(guò)ACTION_ALIAS常量讀取當(dāng)前操作在URL地址中的操作名。
操作映射和模塊映射可以同時(shí)定義,沒(méi)有影響,例如:
'URL_MODULE_MAP'=>array( 'user' => 'Member', ), 'URL_ACTION_MAP'=>array( 'Member' => array( 'register888' => 'add', ), )
則,原來(lái)的注冊(cè)地址
http://serverName/index.php/Member/add
變成了
http://serverName/index.php/user/register888
3.U函數(shù)自動(dòng)支持
可能很多人會(huì)擔(dān)心,在設(shè)置了模塊和操作映射后,U函數(shù)就會(huì)出現(xiàn)需要隨之改動(dòng)的情況。其實(shí)不需要擔(dān)心,因?yàn)閁函數(shù)內(nèi)部已經(jīng)自動(dòng)支持了模塊和操作映射的情況。
例如,原來(lái)在模板文件中使用了
<a href="{:U('Member/add')}">用戶注冊(cè)</a>
無(wú)論如何定義Member模塊和add操作的映射,U方法的寫法始終保持不變,仍然會(huì)正確的指向映射后的URL地址。
總結(jié):
模塊和操作映射可以用于如下場(chǎng)合:
1、有經(jīng)常變化URL需要的場(chǎng)合
2、對(duì)URL安全性較高的場(chǎng)合
3、需要移植的應(yīng)用不希望改變URL地址的場(chǎng)合
需要注意的事項(xiàng):
在使用了模塊和操作映射后,對(duì)相關(guān)URL地址的路由定義可能需要調(diào)整。
上述內(nèi)容就是ThinkPHP3.1.2中的模塊與操作映射是什么意思,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)站題目:ThinkPHP3.1.2中的模塊與操作映射是什么意思-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://chinadenli.net/article26/ioijg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、小程序開(kāi)發(fā)、網(wǎng)站維護(hù)、虛擬主機(jī)、網(wǎng)站設(shè)計(jì)、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容