url管理元件主要提供2個功能:
1、根據使用者輸入的url,解析出處理這個請求的路由——由哪個controller的哪個action來處理,同時將url中的引數部分新增到$_get引數中。在每個web框架中都需要乙個這樣的元件來進行路由分發的工作。
2、根據路由和引數陣列建立出url。在檢視層可以對url進行硬編碼,即直接寫死url位址,但是這往往缺乏靈活性,為後期的維護帶來成本。
array(
'components'=>array(
'urlformat'=>'path',
'rules'=>array(
'/art////'=>'article//',
'post//<.>'=>'post/view',
'/'=>'/',
),),
);如上是乙個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
yii框架美化url
yii框架美化url需要在當前檔案的config目錄下main.php檔案中的components的陣列中加入這一行配置 urlmanager enableprettyurl true,美化url ture enablestrictparsing false,不啟用嚴格解析 showscriptna...
Yii框架響應元件用法例項分析
當我們的瀏覽器傳送過來乙個請求之後,在我們的操作裡面對請求經過處理之後,我們的伺服器也會把請求的結果打包成乙個訊息,然後把這個訊息返還程式設計客棧給瀏覽器,這個訊息我們稱之為響應。在我們的操作中,我們也可以對響應進行一些設定和處理。要處理我們的響應,我們程式設計客棧需要先獲得響應元件這個東西。res...
YII框架分析筆記9 url路由
curlmanager初始化的時候如果url格式 預設是get格式 如果是path格式,則通過配置中的rule陣列建立路由規則物件,根據路由規則獲取內部路由,當路由都不匹配的時候會根據設定的usestrictparsing引數決定丟擲乙個404錯誤合適返回 pathinfo。如果不是path格式的話...