首頁 > php教程 > PHP开发 > 主體

Yii框架分析(八)-URL管理元件

黄舟
發布: 2016-12-27 11:25:30
原創
1230 人瀏覽過

URL管理元件主要提供2個功能:
1、根據使用者輸入的url,解析出處理這個請求的路由-由哪個Controller的哪個Action來處理,同時將url中的參數部分加入$_GET參數中。在每個web框架中都需要一個這樣的元件來進行路由分發的工作。
2、根據路由和參數數組建立出url。在視圖層可以對url進行硬編碼,即直接寫死url位址,但這往往缺乏彈性,為後期的維護帶來成本。

array(
    'components'=>array(
        'urlFormat'=>'path',
        'rules'=>array(
            &#39;/art/<cate:\w+>/<key:\d+>/<id:\d+>/<p:\d+>&#39;=>&#39;article/<cate>/<key>&#39;,
            &#39;post/<id:\d+>/<title:.*?>&#39;=>&#39;post/view&#39;,
            &#39;<controller:\w+>/&#39;=>&#39;<controller>/&#39;,
         ),
    ),
);</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的工作原理。

Yii框架分析(八)-URL管理元件

每條url路由規則由一個CUrlRule物件來進行處理,接下來以如下路由規則為例:'/art////'=>'article//',說明url解析和url創建的處理過程。每個CUrlRule物件處理url的過程可以分為3個階段:
1、 初始化CUrlRule物件
在CUrlRule物件的建構子中,會初始化6個重要的成員變數:

Yii框架分析(八)-URL管理元件

2、解析url
url的工作分3步走:a、根據pattern規則,解析出url中的各個字段;b、根據references對路由中的引用字段進行替換;c、將params中指定的字段添加到$_GET數組中
3. 建立url
建立url的工作分3步驟:a、根據routePattern規則,解析出輸入的路由中各個字段;b、將輸入的參數數組和上一步解析的數組進行合併;c、用合併後的數組對template進行替換。

Yii框架分析(八)-URL管理元件

 以上就是Yii框架分析(八)-URL管理元件的內容,更多相關內容請關注PHP中文網(www.php.cn)!


相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!