URL管理元件主要提供2個功能:
1、根據使用者輸入的url,解析出處理這個請求的路由-由哪個Controller的哪個Action來處理,同時將url中的參數部分加入$_GET參數中。在每個web框架中都需要一個這樣的元件來進行路由分發的工作。
2、根據路由和參數數組建立出url。在視圖層可以對url進行硬編碼,即直接寫死url位址,但這往往缺乏彈性,為後期的維護帶來成本。
array( 'components'=>array( 'urlFormat'=>'path', 'rules'=>array( '/art/<cate:\w+>/<key:\d+>/<id:\d+>/<p:\d+>'=>'article/<cate>/<key>', 'post/<id:\d+>/<title:.*?>'=>'post/view', '<controller:\w+>/'=>'<controller>/', ), ), );</action></controller></action:\w+></controller:\w+></title:.*?></id:\d+></key></cate></p:\d+></id:\d+></key:\d+></cate:\w+>
如上是一個url管理元件的配置,一共有3條規則。下圖以第一條規則為例,說明了url解析和url所建立的兩個功能。對於每個路由規則,CUrlManager都會建立一個CUrlRule物件來處理這條規則對應的這個兩個功能,所以說有幾條規則就會有幾個CUrlRule物件。所以CUrlRule才是url管理的核心所在,接下來分析CUrlRule的工作原理。
每條url路由規則由一個CUrlRule物件來進行處理,接下來以如下路由規則為例:'/art////'=>'article//',說明url解析和url創建的處理過程。每個CUrlRule物件處理url的過程可以分為3個階段:
1、 初始化CUrlRule物件
在CUrlRule物件的建構子中,會初始化6個重要的成員變數:
2、解析url
url的工作分3步走:a、根據pattern規則,解析出url中的各個字段;b、根據references對路由中的引用字段進行替換;c、將params中指定的字段添加到$_GET數組中
3. 建立url
建立url的工作分3步驟:a、根據routePattern規則,解析出輸入的路由中各個字段;b、將輸入的參數數組和上一步解析的數組進行合併;c、用合併後的數組對template進行替換。
以上就是Yii框架分析(八)-URL管理元件的內容,更多相關內容請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。