使用者通過指定的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 當時途...