ci框架

CodeIgniter是一個小巧但功能強大的PHP框架贱案,當前下載包2.6M省骂,作為一個簡單而“優(yōu)雅”的工具包刀脏,適合開發(fā)者們建立功能完善的Web應(yīng)用程序局荚。

官方地址【CI3.1.5】:https://codeigniter.org.cn/
CI4.x版本地址:https://codeigniter-chinese.github.io/codeigniter4-user-guide/index.html

1CI應(yīng)用程序流程圖

下圖說明了整個系統(tǒng)的數(shù)據(jù)流程:

CodeIgniter程序流程

1.index.php文件作為前端控制器,初始化運行CodeIgniter所需的基本資源愈污;
2.Router檢查HTTP請求危队,以確定如何處理該請求;
3.如果存在緩存文件钙畔,將直接輸出到瀏覽器,不用走下面正常的系統(tǒng)流程金麸;
4.在加載應(yīng)用程序控制器之前擎析,對HTTP請求以及任何用戶提交的數(shù)據(jù)進行安全檢查;
5.控制器加載模型、核心類庫揍魂、輔助函數(shù)以及其他所有處理請求所需的資源桨醋;
6.最后一步,渲染視圖并發(fā)送至瀏覽器现斋,如果開啟了緩存喜最,視圖被會先緩存起來用于后續(xù)的請求。

2CI框架源碼架構(gòu)

主要有三個目錄
1>application目錄:用于開發(fā)者編寫相應(yīng)的配置以及邏輯處理庄蹋,開發(fā)者只需在這個目錄下添加自己需要的開發(fā)文件瞬内。
2>system目錄:框架的系統(tǒng)庫,里面包括核心庫限书,類庫虫蝶,輔助類庫,數(shù)據(jù)庫等倦西。
3>user_guide:用戶手冊能真。

image.png
3CI框架運行流程
ci2.png

-1入口文件index.php,定義環(huán)境常量ENVIRONMENT,路徑常量BASEPATH扰柠,APPPATH粉铐,VIEWPATH,引入核心庫system/core下的CodeIgniter.php文件
-2初始化核心庫system/core里的類庫卤档,引用配置文件蝙泼,錯誤處理,鉤子函數(shù)

{
benchmark:"Benchmark",
hooks:"Hooks",
config:"Config",
log:"Log",
utf8:"Utf8",
uri:"URI",
router:"Router",
output:"Output",
security:"Security",
input:"Input",
lang:"Lang",
loader:"Loader"
}

-3鉤子函數(shù)五個:
pre_system在系統(tǒng)執(zhí)行的早期調(diào)用裆装,這個時候只有基準測試類和鉤子類被加載了踱承,還沒有執(zhí)行到路由或其他的流程。
pre_controller在你的控制器調(diào)用之前執(zhí)行哨免,所有的基礎(chǔ)類都已加載茎活,路由和安全檢查也已經(jīng)完成。
post_controller_constructor在你的控制器實例化之后立即執(zhí)行琢唾,控制器的任何方法都還尚未調(diào)用载荔。
post_controller在你的控制器完全運行結(jié)束時執(zhí)行。
post_system在最終的頁面發(fā)送到瀏覽器之后采桃、在系統(tǒng)的最后期被調(diào)用懒熙。

-4實例化CI_Controller

function&get_instance()
{
returnCI_Controller::get_instance();
}

路由類Router解析url獲取請求的controller控制器、method方法以及參數(shù)普办,加載application/config配置文件中相應(yīng)的librays類庫工扎、helper輔助函數(shù)DB庫,也可添加model類衔蹲,執(zhí)行方法肢娘,渲染html頁面

-5加載CI類庫system/libraries/和自定義類庫application/libraries

$this->load->library('class_name');
$this->load->library('form_validation');//加載表單驗證類庫
類庫參考

*基準測試類
*緩存驅(qū)動器
*日歷類
*購物車類
*配置類
*Email類
*加密類
*加密類(新版)
*文件上傳類
*表單驗證類
*FTP類
*圖像處理類
*輸入類
*Javascript類
*語言類
*加載器類
*遷移類
*輸出類
*分頁類
*模板解析類
*安全類
*Session類
*HTML表格類
*引用通告類
*排版類
*單元測試類
*URI類
*用戶代理類
*XML-RPC與XML-RPC服務(wù)器類
*Zip編碼類

-6加載系統(tǒng)輔助函數(shù)system/helpers和自定義輔助函數(shù)appliation/helpers

$this->load->helper('name');
$this->load->helper('url');//加載URL輔助函數(shù),它的文件名為url_helper.php
$this->load->helper(
['helper1','helper2','helper3']
);//加載多個輔助函數(shù)
輔助函數(shù)參考

*數(shù)組輔助函數(shù)
*驗證碼輔助函數(shù)
*Cookie輔助函數(shù)
*日期輔助函數(shù)
*目錄輔助函數(shù)
*下載輔助函數(shù)
*郵件輔助函數(shù)
*文件輔助函數(shù)
*表單輔助函數(shù)
*HTML輔助函數(shù)
*Inflector輔助函數(shù)
*語言輔助函數(shù)
*數(shù)字輔助函數(shù)
*路徑輔助函數(shù)
*安全輔助函數(shù)
*表情輔助函數(shù)
*字符串輔助函數(shù)
*文本輔助函數(shù)
*排版輔助函數(shù)
*URL輔助函數(shù)
*XML輔助函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市橱健,隨后出現(xiàn)的幾起案子而钞,更是在濱河造成了極大的恐慌,老刑警劉巖拘荡,帶你破解...
    沈念sama閱讀 222,627評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件臼节,死亡現(xiàn)場離奇詭異,居然都是意外死亡珊皿,警方通過查閱死者的電腦和手機网缝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亮隙,“玉大人途凫,你說我怎么就攤上這事∫缥牵” “怎么了维费?”我有些...
    開封第一講書人閱讀 169,346評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長促王。 經(jīng)常有香客問我犀盟,道長,這世上最難降的妖魔是什么蝇狼? 我笑而不...
    開封第一講書人閱讀 60,097評論 1 300
  • 正文 為了忘掉前任阅畴,我火速辦了婚禮,結(jié)果婚禮上迅耘,老公的妹妹穿的比我還像新娘贱枣。我一直安慰自己,他們只是感情好颤专,可當我...
    茶點故事閱讀 69,100評論 6 398
  • 文/花漫 我一把揭開白布纽哥。 她就那樣靜靜地躺著,像睡著了一般栖秕。 火紅的嫁衣襯著肌膚如雪春塌。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,696評論 1 312
  • 那天簇捍,我揣著相機與錄音只壳,去河邊找鬼。 笑死暑塑,一個胖子當著我的面吹牛吼句,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播事格,決...
    沈念sama閱讀 41,165評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼惕艳,長吁一口氣:“原來是場噩夢啊……” “哼况毅!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起尔艇,我...
    開封第一講書人閱讀 40,108評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎么鹤,沒想到半個月后终娃,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,646評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蒸甜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,709評論 3 342
  • 正文 我和宋清朗相戀三年棠耕,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柠新。...
    茶點故事閱讀 40,861評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡窍荧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出恨憎,到底是詐尸還是另有隱情硕噩,我是刑警寧澤哩照,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響颠印,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜撼嗓,卻給世界環(huán)境...
    茶點故事閱讀 42,196評論 3 336
  • 文/蒙蒙 一绑谣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧程梦,春花似錦点把、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拿撩,卻和暖如春衣厘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背压恒。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評論 1 274
  • 我被黑心中介騙來泰國打工影暴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人探赫。 一個月前我還...
    沈念sama閱讀 49,287評論 3 379
  • 正文 我出身青樓型宙,卻偏偏與公主長得像,于是被迫代替她去往敵國和親伦吠。 傳聞我的和親對象是個殘疾皇子妆兑,可洞房花燭夜當晚...
    茶點故事閱讀 45,860評論 2 361

推薦閱讀更多精彩內(nèi)容

  • CodeIgniter 是一個小巧但功能強大的 PHP 框架魂拦,當前下載包2.6M,作為一個簡單而“優(yōu)雅”的工具包搁嗓,...
    降水閱讀 380評論 0 1
  • CodeIgniter 是一個小巧但功能強大的 PHP 框架芯勘,當前下載包2.6M,作為一個簡單而“優(yōu)雅”的工具包腺逛,...
    降水閱讀 392評論 0 2
  • CodeIgniter 是一個小巧但功能強大的 PHP 框架荷愕,當前下載包2.6M,作為一個簡單而“優(yōu)雅”的工具包棍矛,...
    降水閱讀 2,474評論 0 1
  • application:具體項目開發(fā)目錄安疗; system:CI框架代碼; user_guide:用戶手冊够委,和實現(xiàn)無...
    依點矯情閱讀 1,540評論 0 5
  • 有人說phper的深入要從研讀mvc框架開始荐类,我跳了一個常用的CI框架入手,一是因為 CI框架簡單輕巧茁帽,二是...
    chanya閱讀 2,821評論 1 21