URL管理組件主要提供2個功能:
1、根據(jù)用戶輸入的url,解析出處理這個請求的路由——由哪個Controller的哪個Action來處理,同時將url中的參數(shù)部分添加到$_GET參數(shù)中。在每個web框架中都需要一個這樣的組件來進行路由分發(fā)的工作。
2、根據(jù)路由和參數(shù)數(shù)組創(chuàng)建出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條規(guī)則。下圖以第一條規(guī)則為例,說明了url解析和url創(chuàng)建的兩個功能。對于每個路由規(guī)則,CUrlManager都會創(chuàng)建一個CUrlRule對象來處理這條規(guī)則對應的這個兩個功能,所以說有幾條規(guī)則就會有幾個CUrlRule對象。所以CUrlRule才是url管理的核心所在,接下來分析CUrlRule的工作原理。
每條url路由規(guī)則由一個CUrlRule對象來進行處理,接下來以如下路由規(guī)則為例:'/art////'=>'article//',說明url解析和url創(chuàng)建的處理過程。每個CUrlRule對象處理url的過程可以分為3個階段:
1、 初始化CUrlRule對象
在CUrlRule對象的構造函數(shù)中,會初始化6個重要的成員變量:
2、 解析url
解析url的工作分3步走:a、根據(jù)pattern規(guī)則,解析出url中的各個字段;b、根據(jù)references對路由中的引用字段進行替換;c、將params中指定的字段添加到$_GET數(shù)組中
3、 創(chuàng)建url
創(chuàng)建url的工作分3步走:a、根據(jù)routePattern規(guī)則,解析出輸入的路由中各個字段;b、將輸入的參數(shù)數(shù)組和上一步解析的數(shù)組進行合并;c、用合并后的數(shù)組對template進行替換。
?以上就是Yii框架分析(八)——URL管理組件的內容,更多相關內容請關注PHP中文網(www.miracleart.cn)!

熱AI工具

Undress AI Tool
免費脫衣服圖片

Undresser.AI Undress
人工智能驅動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機

Video Face Swap
使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網頁開發(fā)工具

SublimeText3 Mac版
神級代碼編輯軟件(SublimeText3)

Yii框架中間件:為應用程序提供多重數(shù)據(jù)存儲支持介紹中間件(middleware)是Yii框架中的一個重要概念,它為應用程序提供了多重數(shù)據(jù)存儲支持。中間件的作用類似于一個過濾器,它能夠在應用程序的請求和響應之間插入自定義代碼。通過中間件,我們可以對請求進行處理、驗證、過濾,然后將處理后的結果傳遞給下一個中間件或最終的處理程序。Yii框架中的中間件使用起來非常

Yii框架中間件:為應用程序添加日志記錄和調試功能【引言】在開發(fā)Web應用程序時,我們通常需要添加一些附加功能以提高應用的性能和穩(wěn)定性。Yii框架提供了中間件的概念,使我們能夠在應用程序處理請求之前和之后執(zhí)行一些額外的任務。本文將介紹如何使用Yii框架的中間件功能來實現(xiàn)日志記錄和調試功能?!臼裁词侵虚g件】中間件是指在應用程序處理請求之前和之后,對請求和響應做

隨著Web應用程序的快速發(fā)展,現(xiàn)代Web開發(fā)已成為一項重要技能。許多框架和工具可用于開發(fā)高效的Web應用程序,其中Yii框架就是一個非常流行的框架。Yii是一個高性能、基于組件的PHP框架,它采用了最新的設計模式和技術,提供了強大的工具和組件,是構建復雜Web應用程序的理想選擇。在本文中,我們將討論如何使用Yii框架來構建Web應用程序。安裝Yii框架首先,

使用Yii框架實現(xiàn)網頁緩存和頁面分塊的步驟引言:在Web開發(fā)過程中,為了提高網站的性能和用戶體驗,常常需要對頁面進行緩存和分塊處理。Yii框架提供了強大的緩存和布局功能,可以幫助開發(fā)者快速實現(xiàn)網頁緩存和頁面分塊,本文將介紹如何使用Yii框架進行網頁緩存和頁面分塊的實現(xiàn)。一、網頁緩存開啟網頁緩存在Yii框架中,可以通過配置文件來開啟網頁緩存。打開主配置文件co

在Yii框架中,控制器(Controllers)扮演著處理請求的重要角色。除了處理常規(guī)的頁面請求之外,控制器還可以用于處理Ajax請求。本文將介紹在Yii框架中處理Ajax請求的方法,并提供代碼示例。在Yii框架中,處理Ajax請求可以通過以下步驟進行:第一步,創(chuàng)建一個控制器(Controller)類??梢酝ㄟ^繼承Yii框架提供的基礎控制器類yiiwebCo

在現(xiàn)代的Web應用程序開發(fā)中,調試工具是不可或缺的。它們可以幫助開發(fā)者查找和解決應用程序的各種問題。Yii框架作為一款流行的Web應用程序框架,自然也提供了一些調試工具。本文將重點介紹Yii框架中的調試工具,并討論它們如何幫助我們分析和調試應用程序。GiiGii是Yii框架的代碼生成器。它可以自動生成Yii應用程序的代碼,如模型、控制器和視圖等。使用Gii,

使用Yii框架中間件加密和解密敏感數(shù)據(jù)引言:在現(xiàn)代的互聯(lián)網應用中,隱私和數(shù)據(jù)安全是非常重要的問題。為了確保用戶的敏感數(shù)據(jù)不被未經授權的訪問者獲取,我們需要對這些數(shù)據(jù)進行加密。Yii框架為我們提供了一種簡單且有效的方法來實現(xiàn)加密和解密敏感數(shù)據(jù)的功能。在本文中,我們將介紹如何使用Yii框架的中間件來實現(xiàn)這一目標。Yii框架簡介Yii框架是一個高性能的PHP框架,

在準備Yii框架的面試時,你需要了解以下關鍵知識點:1.MVC架構:理解模型、視圖和控制器的協(xié)同工作。2.ActiveRecord:掌握ORM工具的使用,簡化數(shù)據(jù)庫操作。3.Widgets和Helpers:熟悉內置組件和輔助函數(shù),快速構建用戶界面。掌握這些核心概念和最佳實踐將幫助你在面試中脫穎而出。
