PHP路由技術的原理與實踐

2021-09-19 17:29:54 字數 1650 閱讀 1969

使用者通過指定的url正規化對後台進行訪問,url路由處理類進行處理後,**到邏輯處理類,邏輯處理類將請求結果返回給使用者。

約定一套自己喜歡的,對搜尋引擎友好,對使用者友好的url規則

對使用者請求的url進行解析處理,獲取到使用者請求的類,方法,以及query引數等,並將請求**給邏輯處理類。

處理**的真實業務邏輯。

目前來說,有兩種比較流行的url格式,一種是普通模式,一種是pathinfo模式。

thinkphp框架中,預設的url格式即為普通模式,普通模式url如下:

index.php?m=home&c=user&a=login&v=value
其中m引數的值為模組名稱,c引數的值為控制器名稱,a引數的值為方法名稱,之後的引數則為該方法中所要接收的其他get請求引數

codeigniter框架中,預設的url格式為pathinfo模式,如下:

index.php/controller/method/prarme1/value1
這塊的意義也已經標註的很明白了,在method以後,就是方法接收的get引數了,格式就是名稱/值

此處我們選用最簡單的普通單模組模式進行演示,只為說明簡單的原理,如下:

index.php?c=user&a=login&v=value
我們約定引數c為控制器名稱,引數a為方法名稱,之後的均是get引數

<?php

include 'index.class.php';

include 'user.class.php';

// 對使用者請求url進行處理

$query = $_get;

$controller = isset($query['c']) ? $query['c'] : 'indexcontroller';

$action = isset($query['a']) ? $query['a'] : 'index';

if (class_exists($controller)) else

} else

其中unset()掉兩個get引數,只是為了對真正呼叫的方法造成其他影響。

邏輯處理類就是最終的業務邏輯,也就是真正的回應使用者請求的**片段。下面只是乙個簡單的示例:

/* index.class.php 檔案原始碼 */

<?php

class indexcontroller

}

/* user.class.php 檔案原始碼 */

<?php

class user

public function login()

}

這裡只是最簡單的php路由技術的原理,其實真正為乙個專案或者框架進行路由開發,可能需要能夠相容很多複雜的情況,需要對各種情況都要考慮到。

PHP路由技術的原理與實踐

使用者通過指定的url正規化對後台進行訪問。url路由處理類進行處理後。到邏輯處理類,邏輯處理類將請求結果返回給使用者。約定url正規化和規則 約定一套自己喜歡的,對搜尋引擎友好。對使用者友好的url規則 url處理類 即路由實現的核心 對使用者請求的url進行解析處理,獲取到使用者請求的類,方法,...

php路由原理 PHP路由設定原理

0x00 路由實現原理 使用者通過指定的url正規化對後台進行訪問,url路由處理類進行處理後,到邏輯處理類,邏輯處理類將請求結果返回給使用者。約定url正規化和規則 約定一套自己喜歡的,對搜尋引擎友好,對使用者友好的url規則 url處理類 對使用者請求的url進行解析處理,獲取到使用者請求的類,...

php 路由實現 PHP路由原理

路由的原理 路由主要將url中的控制器,辦法解析出來,對映到對應的控制器和辦法中。通常咱們會看到這樣的位址這個位址咱們要把它解析出來。示例 在瀏覽器位址列輸入以下 後台部分 建立乙個控制器類 classusercontroller publicfunctiondel id,name echo 當時途...