版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、CodeIgniter框架,一、CI簡(jiǎn)單介紹,如果. 你不喜歡復(fù)雜,熱愛(ài)簡(jiǎn)單。 你想要一個(gè)小巧的框架。 你需要廣泛兼容標(biāo)準(zhǔn)主機(jī)上的各種 PHP 版本和配置。 你想要一個(gè)幾乎只需 0 配置的框架。 你不希望被迫學(xué)習(xí)一門(mén)模板語(yǔ)言(雖然可以選擇你喜歡的模板解析器)。 那么 CodeIgniter 就是你所需要的 CodeIgniter 是一個(gè)小巧但功能強(qiáng)大的 PHP 框架 CI的特點(diǎn): 簡(jiǎn)單 免費(fèi) MVC(關(guān)鍵),一、CI簡(jiǎn)單介紹,2013年最棒的4個(gè)PHP框架,二、下載并安裝CI,下載地址: 最新版本是2.1.4 安裝步驟: 解壓縮安裝包。 把 CodeIgniter 文件夾和里面的文件上傳到你的
2、服務(wù)器。 用任何文本編輯器打開(kāi) application/config/config.php 去設(shè)置你的網(wǎng)站根 URL。 如果你打算使用數(shù)據(jù)庫(kù),打開(kāi) application/config/database.php 文件,設(shè)置你的數(shù)據(jù)庫(kù)參數(shù)。,三、網(wǎng)站結(jié)構(gòu)及業(yè)務(wù)流程,安裝 CI 文件后,我們來(lái)看一下目錄結(jié)構(gòu) 分析各文件的功能,三、網(wǎng)站結(jié)構(gòu)及業(yè)務(wù)流程,應(yīng)用程序流程圖 Question:默認(rèn)首頁(yè)是如何顯示出來(lái)的?,四、控制器,控制器是應(yīng)用程序的心臟,因?yàn)樗鼈儧Q定如何處理 HTTP 請(qǐng)求。 簡(jiǎn)而言之,一個(gè)控制器就是一個(gè)類(lèi)文件,是以一種能夠和 URI 關(guān)聯(lián)在一起的方式來(lái)命名的。 假設(shè)這個(gè) URI: Cod
3、eIgniter 將嘗試尋找并裝載一個(gè)名為 blog.php 的控制器。 編寫(xiě)自己的控制器 命名規(guī)范 確保你的控制器擴(kuò)展(繼承)自父控制器類(lèi),以便它能夠繼承其所有的方法 URI 的第二部分是用來(lái)決定調(diào)用控制器中哪個(gè)方法的,如果為空,則默認(rèn)載入 “index” 方法。,五、URL模式,默認(rèn)情況下,CodeIgniter 中的 URL 使用基于段的方法: 第一段表示調(diào)用控制器類(lèi)。 第二段表示調(diào)用類(lèi)中的函數(shù)或方法。 第三及更多的段表示的是傳遞給控制器的參數(shù),如 ID 或其它各種變量。 啟用查詢(xún)字符串 在一些情況下你需要在 URL 中使用查詢(xún)字符串: index.php?c=products 其中$d
4、ata是要傳入視圖的動(dòng)態(tài)數(shù)據(jù)。 模板語(yǔ)法,CI采用原生的模板語(yǔ)法,也就是直接在頁(yè)面中使用php標(biāo)簽處理動(dòng)態(tài)數(shù)據(jù)。 載入多個(gè)視圖,在控制器中使用多個(gè)load-view 即可,如果每個(gè)視圖都傳遞動(dòng)態(tài)數(shù)據(jù),只需在第一個(gè)視圖傳入數(shù)據(jù)。,七、模型,模型是專(zhuān)門(mén)用來(lái)和數(shù)據(jù)庫(kù)打交道的PHP類(lèi)。 模型類(lèi)文件存放在 application/models/ 文件夾。 定義模型 繼承基本模型類(lèi)CI_Model 定義相應(yīng)的方法 載入模型 手動(dòng)載入,在控制器中載入模型,$this-load-model(模型名) 自動(dòng)載入,在config/autoload.php中配置,八、數(shù)據(jù)庫(kù)操作,1. 數(shù)據(jù)庫(kù)配置 applicati
5、on/config/database.php 2. 連接數(shù)據(jù)庫(kù) 手動(dòng)連接:$this-load-database() 自動(dòng)連接:在autoload.php中設(shè)定兩種 3. 數(shù)據(jù)庫(kù)操作 數(shù)據(jù)庫(kù)連接之后,使用$this-db-query(sql語(yǔ)句)來(lái)執(zhí)行查詢(xún) $query = $this-db-query(sql語(yǔ)句),八、數(shù)據(jù)庫(kù)操作,返回結(jié)果集 result() result_array() row() row_array(),成功返回true 失敗返回false,讀操作輔助函數(shù):$query-num_rows(),$query-num_fields(), $query-free_result
6、() 寫(xiě)操作輔助函數(shù):$this-db-insert_id(),$this-db-affected_rows() 其它輔助函數(shù):$this-db-count_all(表名), $this-db-last_query(),$this-db-insert_string(), $this-db-update_string(),八、數(shù)據(jù)庫(kù)操作-Active Record類(lèi),AR數(shù)據(jù)庫(kù)模式以較少的程序代碼來(lái)實(shí)現(xiàn)信息在數(shù)據(jù)庫(kù)中的獲取,插入,更改。 AR允許你創(chuàng)建獨(dú)立的數(shù)據(jù)庫(kù)應(yīng)用程序,因?yàn)椴樵?xún)語(yǔ)法是由數(shù)據(jù)庫(kù)適配器來(lái)產(chǎn)生的。 AR可以進(jìn)行更安全的查詢(xún),因?yàn)橄到y(tǒng)會(huì)自動(dòng)的對(duì)所有的輸入值進(jìn)行轉(zhuǎn)義。,$this-db
7、-get(); $this-db-select(); $this-db-from(); $this-db-where(); $this-db-group_by(); $this-db-having(); $this-db-order_by(); $this-db-limit(); 支持鏈?zhǔn)秸Z(yǔ)法,$this-db-insert(); $this-db-update(); $this-db-delete();,九、部署應(yīng)用程序,思考:如何在一個(gè) CodeIgniter 下運(yùn)行多個(gè)應(yīng)用程序? 方案1,共享同一個(gè) CodeIgniter,創(chuàng)建多個(gè)應(yīng)用 方案2,使用分組功能,將控制器和視圖分開(kāi) 方案3,
8、擴(kuò)展核心類(lèi) 擴(kuò)展核心類(lèi) 擴(kuò)展的類(lèi)必須申明由母類(lèi)擴(kuò)展而來(lái)。 新擴(kuò)展的類(lèi)所在的文件必須以 MY_ 為前綴。 所有原始CodeIgniter類(lèi)庫(kù)以 CI_ 作為前綴,所以請(qǐng)勿以CI_作為你自己的前綴.所有的擴(kuò)展核心類(lèi)必須放到core目錄中! 擴(kuò)展loader類(lèi)和controller,十、CI輔助函數(shù),輔助函數(shù)是幫助我們完成特定任務(wù)的函數(shù)。 每個(gè)輔助函數(shù)文件僅僅是一些函數(shù)的集合(注意不是用類(lèi)的方式來(lái)實(shí)現(xiàn)的)。 每個(gè)輔助函數(shù)處理一個(gè)特定的任務(wù),并且不必依靠其他函數(shù)。 載入輔助函數(shù) 手動(dòng)載入:$this-load-helper(url) 或 $this-load-helper( array(helper1
9、, helper2, helper3) ); 自動(dòng)載入:application/config/autoload.php中配置 使用輔助函數(shù) 直接使用即可,如URL輔助函數(shù)、CAPTCHA輔助函數(shù) 擴(kuò)展helpers,十、CI輔助函數(shù)之URL函數(shù),URL 輔助函數(shù)文件包含一些在處理 URL 中很有用的函數(shù) base_url() :返回在 config.php 中設(shè)定的 base_url site_url() :根 URL 指 config.php 中指定的 base_url 和 index_page anchor() :創(chuàng)建基于你的本地站點(diǎn)URL的標(biāo)準(zhǔn)錨鏈接 redirect(): 跳轉(zhuǎn)函數(shù),十
10、、CI輔助函數(shù)之CAPTCHA函數(shù),驗(yàn)證碼輔助函數(shù)用來(lái)生成圖片驗(yàn)證碼 create_captcha($data) 根據(jù)你指定的一系列參數(shù)創(chuàng)建驗(yàn)證碼圖像, 返回值是一個(gè)包含此圖像數(shù)據(jù)的數(shù)組。 驗(yàn)證碼輔助函數(shù)必須需要GD庫(kù). 只有 img_path 和 img_url 參數(shù)是必須的. captcha 目錄必須可寫(xiě)(666, or 777) 擴(kuò)展CAPTCHA函數(shù),注意: 要手動(dòng)創(chuàng)建data/captcha目錄, 基于項(xiàng)目根目錄,十一、CI類(lèi)庫(kù),所有的類(lèi)庫(kù)文件存放在system/libraries 文件夾 載入類(lèi)庫(kù) $this-load-library(classname); $this-load-
11、library(array(email, table); 或者在autoload.php中配置以自動(dòng)載入 使用類(lèi)庫(kù) $this-classname-方法() 創(chuàng)建自己的類(lèi)庫(kù) 可以創(chuàng)建全新的類(lèi)庫(kù) 可以擴(kuò)展原始類(lèi)庫(kù) 可以替換原始類(lèi)庫(kù),注意兩點(diǎn): 初始化CodeIgniter資源 在初始化自定義類(lèi)時(shí)傳遞參數(shù),十一、CI類(lèi)庫(kù)之裝載類(lèi),裝載,顧名思義,是用來(lái)裝載元素。這些元素可以是庫(kù) (類(lèi)) 視圖文件, 輔助函數(shù), 模型, 或者是你自己的文件。 提示: 這個(gè)類(lèi)是由系統(tǒng)初始化的,所以,沒(méi)有必要自己手動(dòng)初始化。 有了這個(gè)類(lèi)之后,我們就可以裝載各種文件了 $this-load-library(); $this
12、-load-view(); $this-load-model(); $this-load-database(); $this-load-helper(); $this-load-config();,十一、CI類(lèi)庫(kù)之表單驗(yàn)證類(lèi),CodeIgniter 提供了一個(gè)全面的表單驗(yàn)證和數(shù)據(jù)預(yù)處理類(lèi)以幫助縮減你所寫(xiě)的代碼。,十一、CI類(lèi)庫(kù)之輸入類(lèi),輸入類(lèi)有兩個(gè)目的: 為了安全,預(yù)處理輸入數(shù)據(jù)。 提供helper的一些方法,取得輸入數(shù)據(jù),并預(yù)處理輸入數(shù)據(jù)。 說(shuō)明: 系統(tǒng)自動(dòng)加載此類(lèi),不用手動(dòng)加載。,十一、CI類(lèi)庫(kù)之文件上傳類(lèi),CodeIgniter 的文件上傳類(lèi)允許文件被上傳。您可以設(shè)置指定上傳某類(lèi)型的文件
13、及指定大小的文件。,十一、CI類(lèi)庫(kù)之圖像處理類(lèi),CodeIgniter 的圖像處理類(lèi)可以使你完成以下的操作: 調(diào)整圖像大小 創(chuàng)建縮略圖 圖像裁剪 圖像旋轉(zhuǎn) 添加圖像水印,十一、CI類(lèi)庫(kù)之分頁(yè)類(lèi),CodeIgniter 的分頁(yè)類(lèi)是一個(gè)非常簡(jiǎn)單,并且 100% 用戶(hù)自定義的類(lèi)。,十二、CI超級(jí)對(duì)象,CI構(gòu)建一個(gè)“超級(jí)對(duì)象”:它把你的整個(gè)程序當(dāng)作一個(gè)大的對(duì)象。 在config.php中開(kāi)啟日志以查看 分析源碼,探究超級(jí)對(duì)象形成過(guò)程,Controller.php,CodeIgniter.php,十三、緩存之頁(yè)面緩存,頁(yè)面緩存 CI支持每個(gè)頁(yè)面單獨(dú)緩存,而且可以設(shè)置緩存更新時(shí)間。當(dāng)一個(gè)網(wǎng)頁(yè)第一次被加載的
14、時(shí)候,緩存文件將被保存到application/cache文件夾。下次訪(fǎng)問(wèn)的時(shí)候,系統(tǒng)就會(huì)直接讀取緩存文件,然后返回給用戶(hù)的瀏覽器。如果緩存文件過(guò)期,它將被刪除并重新生成。 啟動(dòng)緩存 在控制器(controller)的方法(function)內(nèi)添加如下代碼:$this-output-cache(n); 其中 n 是你希望緩存更新的 分鐘 數(shù)??梢允褂?m/60 來(lái)精確到秒,例如 1/60 ,則是精確到 1秒 刪除緩存 如果你不再想使用緩存,僅需將上面的代碼從你的controller里面刪除即可。,此處使用了輸出類(lèi)output,十三、緩存之?dāng)?shù)據(jù)庫(kù)緩存,數(shù)據(jù)緩存 數(shù)據(jù)庫(kù)查詢(xún)結(jié)果保存在文本文件中以減
15、少數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)。 首次被加載時(shí),數(shù)據(jù)庫(kù)查詢(xún)的結(jié)果對(duì)象將會(huì)被序列化并保存在你服務(wù)器的文本文件中。而頁(yè)面再次被加載時(shí)緩存文件將會(huì)替代數(shù)據(jù)庫(kù)查詢(xún)。如此,在被緩存的頁(yè)面中,你的數(shù)據(jù)庫(kù)使用率會(huì)降至0。 只有讀類(lèi)型(SELECT) 查詢(xún)會(huì)被緩存,因?yàn)橹挥羞@種查詢(xún)會(huì)產(chǎn)生結(jié)果集。 激活緩存 在服務(wù)器上創(chuàng)建一個(gè)可寫(xiě)的目錄以便保存緩存文件。 在文件application/config/database.php中$dbxxxxcachedir 設(shè)置其目錄。 激活緩存特性,可以在文件 application/config/database.php 中設(shè)置全局選項(xiàng)$dbxxxxcache_on=TRUE,或使用$this
16、-db-cache_on() / $this-db-cache_off()手動(dòng)設(shè)置 刪除緩存 $this-db-cache_delete() 和 $this-db-cache_delete_all(),十四、安全,不安全因素: 通過(guò)url惡意訪(fǎng)問(wèn) sql注入 xss攻擊 CodeIgniter 嚴(yán)格限制 URI 中所能包含的字符,以此幫助你設(shè)計(jì)的程序減少被惡意數(shù)據(jù)入侵的可能。 在接收任何數(shù)據(jù)到你的程序之前,不管是表單提交的 POST 數(shù)據(jù)、COOKIE 數(shù)據(jù)、GET數(shù)據(jù),都推薦你實(shí)踐下面的三個(gè)步驟: 過(guò)濾不良數(shù)據(jù) (XSS 過(guò)濾) 驗(yàn)證數(shù)據(jù)以確保符合正確的類(lèi)型、長(zhǎng)度、大小等(表單驗(yàn)證) 在提交
17、數(shù)據(jù)到你的數(shù)據(jù)庫(kù)之前將其轉(zhuǎn)換 (插入數(shù)據(jù)庫(kù)之前轉(zhuǎn)義所有數(shù)據(jù)),十五、錯(cuò)誤及調(diào)試,CodeIgniter將允許你建立自己的錯(cuò)誤報(bào)告 show_error() show_404() CodeIgniter會(huì)在找不到目標(biāo)控制器情況下,自動(dòng)顯示404消息。 log_message() 使用分析器將在頁(yè)面下方顯示基準(zhǔn)測(cè)試結(jié)果,運(yùn)行過(guò)的 SQL 語(yǔ)句,以及 $_POST 數(shù)據(jù)。這些信息有助于開(kāi)發(fā)過(guò)程中的調(diào)試和優(yōu)化。 該分析器無(wú)須手動(dòng)初始化,只需按照下面的方式激活,他將被輸出類(lèi)自動(dòng)裝載。 在控制器中設(shè)置以下方法以激活該分析器 $this-output-enable_profiler(TRUE);激活后將產(chǎn)生一個(gè)報(bào)告并插入您的頁(yè)面底部,十六、鉤子,CodeIgniter 的鉤子功能使得您可以在不修改系統(tǒng)核心文件的基礎(chǔ)上來(lái)改變或增加系統(tǒng)的核心運(yùn)行功能。 啟用鉤子 在 application/config/config.php 文件中設(shè)定: $configenable_hooks = TRUE; 定義鉤子 鉤子是在 application/config/hooks.php 文件中定義的 掛鉤點(diǎn) pre_system pre_controller post_controller_con
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年湖南有色金屬職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試參考題庫(kù)有答案解析
- 2026年河北機(jī)電職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)考試模擬試題帶答案解析
- 2026年福建商學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試模擬試題帶答案解析
- 2026年合肥濱湖職業(yè)技術(shù)學(xué)院?jiǎn)握芯C合素質(zhì)筆試備考試題帶答案解析
- 2026年廣西交通職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能筆試備考題庫(kù)帶答案解析
- 2026年合肥信息技術(shù)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試備考題庫(kù)帶答案解析
- 2026年保山中醫(yī)藥高等專(zhuān)科學(xué)校單招綜合素質(zhì)考試備考題庫(kù)帶答案解析
- 2026年廣東江門(mén)中醫(yī)藥職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考題庫(kù)有答案解析
- 數(shù)字廣告投放合同協(xié)議2025年
- 2026年黑龍江職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試參考題庫(kù)帶答案解析
- 2026貴州黔南州長(zhǎng)順縣醫(yī)療集團(tuán)中心醫(yī)院招聘?jìng)浒妇幹迫藛T21人筆試參考題庫(kù)及答案解析
- 中國(guó)兒童原發(fā)性免疫性血小板減少癥診斷與治療改編指南(2025版)
- 2026年遼寧生態(tài)工程職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試題庫(kù)附答案詳解
- 基坑回填質(zhì)量控制措施
- 2025重慶城口縣國(guó)有企業(yè)公開(kāi)招聘26人參考題庫(kù)附答案
- 應(yīng)力性骨折課件
- 醫(yī)?;鸨O(jiān)管培訓(xùn)課件
- 新型醫(yī)療器械應(yīng)用評(píng)估報(bào)告
- 2023心力衰竭器械治療進(jìn)展
- 2025年大學(xué)《應(yīng)急裝備技術(shù)與工程-應(yīng)急裝備概論》考試備考試題及答案解析
- 2025年國(guó)家開(kāi)放大學(xué)(電大)《護(hù)理倫理學(xué)》期末考試復(fù)習(xí)題庫(kù)及答案解析
評(píng)論
0/150
提交評(píng)論