摘要:下面只是一個簡單的示例文件源碼文件源碼這里是控制器結束這里只是最簡單的路由技術的原理,其實真正為一個項目或者框架進行路由開發(fā),可能需要能夠兼容很多復雜的情況,需要對各種情況都要考慮到。
0x00 路由實現(xiàn)原理
用戶通過指定的URL范式對后臺進行訪問,URL路由處理類進行處理后,轉發(fā)到邏輯處理類,邏輯處理類將請求結果返回給用戶。
約定URL范式和規(guī)則約定一套自己喜歡的,對搜索引擎友好,對用戶友好的URL規(guī)則
URL處理類對用戶請求的URL進行解析處理,獲取到用戶請求的類,方法,以及Query參數(shù)等,并將請求轉發(fā)給邏輯處理類。
邏輯處理類處理網(wǎng)站的真實業(yè)務邏輯。
0x01 URL范式約定目前來說,有兩種比較流行的URL格式,一種是普通模式,一種是 pathinfo 模式。
普通模式在 ThinkPHP 框架中,默認的URL格式即為普通模式,普通模式URL如下:
index.php?m=home&c=user&a=login&v=value
其中 m 參數(shù)的值為模塊名稱, c 參數(shù)的值為控制器名稱, a 參數(shù)的值為方法名稱,之后的參數(shù)則為該方法中所要接收的其他 GET 請求參數(shù)
pathinfo模式在 CodeIgniter 框架中,默認的URL格式為 pathinfo 模式,如下:
index.php/controller/method/prarme1/value1
這塊的意義也已經(jīng)標注的很明白了,在 method 以后,就是方法接收的 GET 參數(shù)了,格式就是 名稱/值
0x02 URL路由處理類(核心)此處我們選用最簡單的普通單模塊模式進行演示,只為說明簡單的原理,如下:
index.php?c=user&a=login&v=value
我們約定參數(shù) c 為控制器名稱,參數(shù) a 為方法名稱,之后的均是 GET 參數(shù)
$action(); } else { echo "控制器" . $controller . "中不存在方法" . $action; } } else { echo "不存在控制器" . $controller; }
其中 unset() 掉兩個get參數(shù),只是為了對真正調(diào)用的方法造成其他影響。
0x03 邏輯處理類邏輯處理類就是最終的業(yè)務邏輯,也就是真正的回應用戶請求的代碼片段。下面只是一個簡單的示例:
/* index.class.php 文件源碼 *//* user.class.php 文件源碼 */ 0x04 結束這里只是最簡單的PHP路由技術的原理,其實真正為一個項目或者框架進行路由開發(fā),可能需要能夠兼容很多復雜的情況,需要對各種情況都要考慮到。
原文作者:我才是二亮
原文鏈接:http://www.2liang.me/?p=230
轉載必須在正文中標注并保留原文鏈接、作者等信息。
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/21094.html
摘要:的最后一個大招就是替換一些傳統(tǒng)的服務端語言,例如,,等,在業(yè)務層上面使用來開發(fā)服務端完全不成問題。更多的的使用細節(jié)和技巧建議關注美團博客大搜車論壇下一篇我們開啟如何結合和搭建一個開發(fā)環(huán)境和項目目錄 往期回顧 前面2期都講得是瀏覽器端的東西比較多,包括Webpack,雖然是Node處理的,但是還是瀏覽器端用的多,對于現(xiàn)在的前端開發(fā)來說,不懂一點服務端的東西,簡直沒辦法活,一般的招聘要求都...
摘要:在中,提示符可能是。框架使用來執(zhí)行安裝及管理依賴。為了能訪問網(wǎng)頁,要啟動程序服務器。在大多數(shù)類系統(tǒng)中,包括,命令行提示符是符號。這兩個操作分別對應于的和,即創(chuàng)建和讀取。首個表單要在模板中編寫表單,可以使用表單構造器。 【摘要】自從ThinkSNS+不使用ThinkPHP框架而使用Laravel框架之后,很多人都說技術門檻抬高了,其實你與TS+的距離僅僅只是學習一個新框架而已,所以,我們...
摘要:前言騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。其實閉包也就是指有權訪問另一個函數(shù)作用域的函數(shù)而已。常用的創(chuàng)建閉包的方法就是在函數(shù)內(nèi)部創(chuàng)建另一個函數(shù)。 前言 騰訊一面,相比阿里一面來說,騰訊一面先給打電話預定時間,這也給了我們這些面試者去準備的時間。但是也正是因為這種確定性,也有在等待電話的時候的心情的忐忑。 背景 我是一名大三學生,大一...
閱讀 2316·2021-11-25 09:43
閱讀 3456·2021-10-25 09:48
閱讀 1331·2021-09-13 10:24
閱讀 2740·2019-08-29 15:07
閱讀 1279·2019-08-29 13:14
閱讀 3276·2019-08-29 12:22
閱讀 1362·2019-08-29 11:32
閱讀 3247·2019-08-29 11:23