0x00 路由實現原理
使用者通過指定的url正規化對後台進行訪問,url路由處理類進行處理後,**到邏輯處理類,邏輯處理類將請求結果返回給使用者。
約定url正規化和規則
約定一套自己喜歡的,對搜尋引擎友好,對使用者友好的url規則
url處理類
對使用者請求的url進行解析處理,獲取到使用者請求的類,方法,以及query引數等,並將請求**給邏輯處理類。
邏輯處理類
處理**的真實業務邏輯。
0x01 url正規化約定
目前來說,有兩種比較流行的url格式,一種是普通模式,一種是 pathinfo 模式。
普通模式
在 thinkphp 框架中,預設的url格式即為普通模式,普通模式url如下:
index.php?m=home&c=user&a=login&v=value
其中 m 引數的值為模組名稱, c 引數的值為控制器名稱, a 引數的值為方法名稱,之後的引數則為該方法中所要接收的其他 get 請求引數
pathinfo模式
在 codeigniter 框架中,預設的url格式為 pathinfo 模式,如下:
index.php/controller/method/prarme1/value1
這塊的意義也已經標註的很明白了,在 method 以後,就是方法接收的 get 引數了,格式就是 名稱/值
0x02 url路由處理類(核心)
此處我們選用最簡單的普通單模組模式進行演示,只為說明簡單的原理,如下:
index.php?c=user&a=login&v=value
我們約定引數 c 為控制器名稱,引數 a 為方法名稱,之後的均是 get 引數
// 對使用者請求url進行處理 $query = $_get; $controller = isset($query['c']) ? $query['c'] : 'indexcontroller'; $action = isset($query['a']) ? $query['a'] : 'index'; if (class_exists($controller)) else else public function login(){
var_dump($_get);
0x04 結束
這裡只是最簡單的php路由技術的原理,其實真正為乙個專案或者框架進行路由開發,可能需要能夠相容很多複雜的情況,需要對各種情況都要考慮到。
php 路由實現 PHP路由原理
路由的原理 路由主要將url中的控制器,辦法解析出來,對映到對應的控制器和辦法中。通常咱們會看到這樣的位址這個位址咱們要把它解析出來。示例 在瀏覽器位址列輸入以下 後台部分 建立乙個控制器類 classusercontroller publicfunctiondel id,name echo 當時途...
PHP路由技術的原理與實踐
使用者通過指定的url正規化對後台進行訪問。url路由處理類進行處理後。到邏輯處理類,邏輯處理類將請求結果返回給使用者。約定url正規化和規則 約定一套自己喜歡的,對搜尋引擎友好。對使用者友好的url規則 url處理類 即路由實現的核心 對使用者請求的url進行解析處理,獲取到使用者請求的類,方法,...
PHP路由技術的原理與實踐
使用者通過指定的url正規化對後台進行訪問,url路由處理類進行處理後,到邏輯處理類,邏輯處理類將請求結果返回給使用者。約定一套自己喜歡的,對搜尋引擎友好,對使用者友好的url規則 對使用者請求的url進行解析處理,獲取到使用者請求的類,方法,以及query引數等,並將請求 給邏輯處理類。處理 的真...