CodeIgniter源碼閱讀(三)(URI.php)

看這一部分以前不妨先看一下confing裏的設置。在config裏有一項設置是$config['uri_protocol'] = 'AUTO';默認是AUTO,能夠設置成AUTOPATH_INFOQUERY_STRINGREQUEST_URIORIG_PATH_INFO五種方式。URI類中的主要方法_fetch_uri_string就是圍繞這個設置展開的。web

CI自己支持CLI方式訪問(雖然我尚未看到CLI的用處~~)。正則表達式

而在這個文件中,咱們還看到除了前六個函數,其餘每一個函數都是成對出現的,帶r和不帶r的,也就是正序和倒序兩種方式。不得不說CI考慮的很周全。瀏覽器

  • 獲取並設置URI字符串安全

    這個裏面其實內容很少,主要是用到$_SERVER這個超全局變量,對字符串作出一些操做。若是在config裏設置的是AUTO方式的話,就會去檢測到底使用了那種方式。(因此從效率上來說咱們是否是應該明確指定使用何種方式呢?);框架

    其實這裏主要涉及到的仍是咱們常規使用的經過瀏覽器訪問和CLI模式的訪問至於CLI和常規狀況的區別,應該是在參數的接收上(這只是個人理解~~)。若是是CLI模式,則調用_parse_cli_args來解析參數,常規方法則經過_detect_uri來處理。函數

  • 解析URI並賦值學習

    _detect_uri和上一個函數裏都涉及到不少$_SERVER這個超全局變量是很值得學習的。並且在整個CI裏使用正則表達式的地方也不少。(這彷佛是不少優秀的web框架和庫的通俗作法?jQuery也是)。fetch

  • 過濾不安全字符code

    _filter_uri一樣是經過正則表達式。%28->&#40,不太明白這個是爲何。十六進制轉十進制的UTF-8?字符串

  • 其他的一些對URI字段的操做

    能夠看到剩下的函數都很短。但也正是精華之所在。在框架內寫代碼時取得URI或者segment的作法都是經過這些短函數了。避開直接操做的函數。最重要的是,若是是我去寫一個函數,我可能每次都會去讀取一遍URI,這樣實際上就作了不少無用功。

這一個類其實不難看懂,可是我看了好久,也不知道該從哪兒開始去寫筆記。看這個框架,看到更多的是思想。

相關文章
相關標籤/搜索