一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 解密ThinkPHP3.1.2版本之模塊和操作映射

解密ThinkPHP3.1.2版本之模塊和操作映射

2020-07-08 15:10PHP教程網 PHP教程

這篇文章主要介紹了ThinkPHP3.1.2模塊和操作映射,需要的朋友可以參考下

模板和操作映射功能是ThinkPHP3.1.2版本支持的對模塊和操作設置的映射機制,由于可以通過改變配置動態改變(實際真正改變,并非別名)URL訪問地址,加強了應用的安全性,而且,映射機制具有URL不區分大小寫訪問的特性,對于應用的遷移也有很大的幫助。

因為,普通情況下,如果需要更改URL的模塊或者操作訪問的話,需要改動的文件較多,容易導致關聯性出錯。尤其是很多應用需要遷移到新版本的時候,由于模型和控制器改動較多,導致URL地址出現大的調整,通過模塊和操作映射功能,就可以很輕松的解決此類問題。

1.模塊映射

要定義模塊映射,我們只需要在配置文件中定義:

?
1
2
3
4
'URL_MODULE_MAP'=>array(
  'user'   => 'Member',
  'blog'   => 'Info',
 )

URL_MODULE_MAP是一個數組,每個數組項表示:

?
1
'模塊映射名'=>'實際模塊名'

映射名稱不區分大小寫,所以設置后,URL訪問從原來的:

?
1
2
http://serverName/index.php/Member/index
http://serverName/index.php/Info/index

變成了:

?
1
2
http://serverName/index.php/user/index
http://serverName/index.php/blog/index

并且原來的訪問URL是失效的,這也是和定義路由方式改變URL的區別之一。沒有定義映射的模塊訪問不變。
定義了模塊映射后,可以通過MODULE_ALIAS常量讀取當前模塊的URL名稱。

2.操作映射

不僅是模塊名稱可以映射,操作名稱也支持映射,而且是針對模塊來設置的,操作映射的定義方式為:

?
1
2
3
4
5
6
7
8
'URL_ACTION_MAP'=>array(
  'Member'  => array(
    'register' => 'add',
    ),
  'Info'   => array(
    'list'   => 'index'
    ),
 )

URL_ACTION_MAP參數是一個二維數組,每個數組項表示:

?
1
2
3
4
5
'實際模塊名'=>array(
  '操作映射名1'=>'實際操作名1'
  '操作映射名2'=>'實際操作名2'
  ......
 )

操作映射名不區分大小寫,如上定義后,URL訪問從

?
1
2
http://serverName/index.php/Member/add
http://serverName/index.php/Info/index

變成了(不考慮前面定義的模塊映射):

?
1
2
http://serverName/index.php/Member/register
http://serverName/index.php/Info/list

同樣,原來的URL地址訪問則失效。沒有定義映射的操作訪問地址不變。
定義了操作映射后,可以通過ACTION_ALIAS常量讀取當前操作在URL地址中的操作名。
操作映射和模塊映射可以同時定義,沒有影響,例如:

?
1
2
3
4
5
6
7
8
'URL_MODULE_MAP'=>array(
  'user'   => 'Member',
 ),
 'URL_ACTION_MAP'=>array(
  'Member'  => array(
    'register888' => 'add',
    ),
 )

則,原來的注冊地址

?
1
http://serverName/index.php/Member/add

變成了

?
1
http://serverName/index.php/user/register888


3.U函數自動支持

可能很多人會擔心,在設置了模塊和操作映射后,U函數就會出現需要隨之改動的情況。其實不需要擔心,因為U函數內部已經自動支持了模塊和操作映射的情況。
例如,原來在模板文件中使用了

?
1
<a href="{:U('Member/add')}">用戶注冊</a>

無論如何定義Member模塊和add操作的映射,U方法的寫法始終保持不變,仍然會正確的指向映射后的URL地址。

總結:

模塊和操作映射可以用于如下場合:

1、有經常變化URL需要的場合
2、對URL安全性較高的場合
3、需要移植的應用不希望改變URL地址的場合

需要注意的事項:

在使用了模塊和操作映射后,對相關URL地址的路由定義可能需要調整

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 四虎黄色影视库 | 超级乱淫伦短篇小说做车 | 九九99热久久精品在线6 | 午夜亚洲视频 | 国产免费资源 | 久久99精国产一区二区三区四区 | 精品国产一级在线观看 | 国产高清在线播放免费观看 | 无码区国产区在线播放 | 日本中文字幕一区二区三区不卡 | 青草视频在线观看免费网站 | 亚洲免费视频一区二区三区 | 国产高清日韩 | 欧美精品一区二区在线观看 | 91国语精品自产拍在线观看一 | 国产一区二区三区在线看 | 免费在线看片网站 | 久久理论片迅播影院一级 | 亚洲成人伦理 | 任我行视频在线观看国语 | 99影视在线视频免费观看 | 欧亚精品一区二区三区 | 动漫美女人物被黄漫小说 | 国产成人精品高清不卡在线 | 美日韩一区二区三区 | 91小视频在线观看免费版高清 | 好吊操这里有精品 | 精品一区二区三区自拍图片区 | 久久国产精品高清一区二区三区 | 亚洲国产精久久久久久久 | 久热在线这里只有精品7 | 嫩草香味| 男人天堂色男人 | 岛国免费大片 | 四虎伊人| 天天做天天爱天天一爽一毛片 | 99视频九九精品视频在线观看 | 成人精品第一区二区三区 | 激情三级做爰在线观看激情 | 国产 日韩 欧美 综合 | 美女被草出水 |