![CodeIgniter框架.ppt_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/24/de2bbcbd-781a-443e-9618-e123c45f7677/de2bbcbd-781a-443e-9618-e123c45f76771.gif)
![CodeIgniter框架.ppt_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/24/de2bbcbd-781a-443e-9618-e123c45f7677/de2bbcbd-781a-443e-9618-e123c45f76772.gif)
![CodeIgniter框架.ppt_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/24/de2bbcbd-781a-443e-9618-e123c45f7677/de2bbcbd-781a-443e-9618-e123c45f76773.gif)
![CodeIgniter框架.ppt_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/24/de2bbcbd-781a-443e-9618-e123c45f7677/de2bbcbd-781a-443e-9618-e123c45f76774.gif)
![CodeIgniter框架.ppt_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-3/24/de2bbcbd-781a-443e-9618-e123c45f7677/de2bbcbd-781a-443e-9618-e123c45f76775.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、CodeIgniter框架,一、CI簡單介紹,如果. 你不喜歡復雜,熱愛簡單。 你想要一個小巧的框架。 你需要廣泛兼容標準主機上的各種 PHP 版本和配置。 你想要一個幾乎只需 0 配置的框架。 你不希望被迫學習一門模板語言(雖然可以選擇你喜歡的模板解析器)。 那么 CodeIgniter 就是你所需要的 CodeIgniter 是一個小巧但功能強大的 PHP 框架 CI的特點: 簡單 免費 MVC(關鍵),一、CI簡單介紹,2013年最棒的4個PHP框架,二、下載并安裝CI,下載地址: 最新版本是2.1.4 安裝步驟: 解壓縮安裝包。 把 CodeIgniter 文件夾和里面的文件上傳到你的
2、服務器。 用任何文本編輯器打開 application/config/config.php 去設置你的網站根 URL。 如果你打算使用數(shù)據庫,打開 application/config/database.php 文件,設置你的數(shù)據庫參數(shù)。,三、網站結構及業(yè)務流程,安裝 CI 文件后,我們來看一下目錄結構 分析各文件的功能,三、網站結構及業(yè)務流程,應用程序流程圖 Question:默認首頁是如何顯示出來的?,四、控制器,控制器是應用程序的心臟,因為它們決定如何處理 HTTP 請求。 簡而言之,一個控制器就是一個類文件,是以一種能夠和 URI 關聯(lián)在一起的方式來命名的。 假設這個 URI: Cod
3、eIgniter 將嘗試尋找并裝載一個名為 blog.php 的控制器。 編寫自己的控制器 命名規(guī)范 確保你的控制器擴展(繼承)自父控制器類,以便它能夠繼承其所有的方法 URI 的第二部分是用來決定調用控制器中哪個方法的,如果為空,則默認載入 “index” 方法。,五、URL模式,默認情況下,CodeIgniter 中的 URL 使用基于段的方法: 第一段表示調用控制器類。 第二段表示調用類中的函數(shù)或方法。 第三及更多的段表示的是傳遞給控制器的參數(shù),如 ID 或其它各種變量。 啟用查詢字符串 在一些情況下你需要在 URL 中使用查詢字符串: index.php?c=products 其中$d
4、ata是要傳入視圖的動態(tài)數(shù)據。 模板語法,CI采用原生的模板語法,也就是直接在頁面中使用php標簽處理動態(tài)數(shù)據。 載入多個視圖,在控制器中使用多個load-view 即可,如果每個視圖都傳遞動態(tài)數(shù)據,只需在第一個視圖傳入數(shù)據。,七、模型,模型是專門用來和數(shù)據庫打交道的PHP類。 模型類文件存放在 application/models/ 文件夾。 定義模型 繼承基本模型類CI_Model 定義相應的方法 載入模型 手動載入,在控制器中載入模型,$this-load-model(模型名) 自動載入,在config/autoload.php中配置,八、數(shù)據庫操作,1. 數(shù)據庫配置 applicati
5、on/config/database.php 2. 連接數(shù)據庫 手動連接:$this-load-database() 自動連接:在autoload.php中設定兩種 3. 數(shù)據庫操作 數(shù)據庫連接之后,使用$this-db-query(sql語句)來執(zhí)行查詢 $query = $this-db-query(sql語句),八、數(shù)據庫操作,返回結果集 result() result_array() row() row_array(),成功返回true 失敗返回false,讀操作輔助函數(shù):$query-num_rows(),$query-num_fields(), $query-free_result
6、() 寫操作輔助函數(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ù)據庫操作-Active Record類,AR數(shù)據庫模式以較少的程序代碼來實現(xiàn)信息在數(shù)據庫中的獲取,插入,更改。 AR允許你創(chuàng)建獨立的數(shù)據庫應用程序,因為查詢語法是由數(shù)據庫適配器來產生的。 AR可以進行更安全的查詢,因為系統(tǒng)會自動的對所有的輸入值進行轉義。,$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(); 支持鏈式語法,$this-db-insert(); $this-db-update(); $this-db-delete();,九、部署應用程序,思考:如何在一個 CodeIgniter 下運行多個應用程序? 方案1,共享同一個 CodeIgniter,創(chuàng)建多個應用 方案2,使用分組功能,將控制器和視圖分開 方案3,
8、擴展核心類 擴展核心類 擴展的類必須申明由母類擴展而來。 新擴展的類所在的文件必須以 MY_ 為前綴。 所有原始CodeIgniter類庫以 CI_ 作為前綴,所以請勿以CI_作為你自己的前綴.所有的擴展核心類必須放到core目錄中! 擴展loader類和controller,十、CI輔助函數(shù),輔助函數(shù)是幫助我們完成特定任務的函數(shù)。 每個輔助函數(shù)文件僅僅是一些函數(shù)的集合(注意不是用類的方式來實現(xiàn)的)。 每個輔助函數(shù)處理一個特定的任務,并且不必依靠其他函數(shù)。 載入輔助函數(shù) 手動載入:$this-load-helper(url) 或 $this-load-helper( array(helper1
9、, helper2, helper3) ); 自動載入:application/config/autoload.php中配置 使用輔助函數(shù) 直接使用即可,如URL輔助函數(shù)、CAPTCHA輔助函數(shù) 擴展helpers,十、CI輔助函數(shù)之URL函數(shù),URL 輔助函數(shù)文件包含一些在處理 URL 中很有用的函數(shù) base_url() :返回在 config.php 中設定的 base_url site_url() :根 URL 指 config.php 中指定的 base_url 和 index_page anchor() :創(chuàng)建基于你的本地站點URL的標準錨鏈接 redirect(): 跳轉函數(shù),十
10、、CI輔助函數(shù)之CAPTCHA函數(shù),驗證碼輔助函數(shù)用來生成圖片驗證碼 create_captcha($data) 根據你指定的一系列參數(shù)創(chuàng)建驗證碼圖像, 返回值是一個包含此圖像數(shù)據的數(shù)組。 驗證碼輔助函數(shù)必須需要GD庫. 只有 img_path 和 img_url 參數(shù)是必須的. captcha 目錄必須可寫(666, or 777) 擴展CAPTCHA函數(shù),注意: 要手動創(chuàng)建data/captcha目錄, 基于項目根目錄,十一、CI類庫,所有的類庫文件存放在system/libraries 文件夾 載入類庫 $this-load-library(classname); $this-load-
11、library(array(email, table); 或者在autoload.php中配置以自動載入 使用類庫 $this-classname-方法() 創(chuàng)建自己的類庫 可以創(chuàng)建全新的類庫 可以擴展原始類庫 可以替換原始類庫,注意兩點: 初始化CodeIgniter資源 在初始化自定義類時傳遞參數(shù),十一、CI類庫之裝載類,裝載,顧名思義,是用來裝載元素。這些元素可以是庫 (類) 視圖文件, 輔助函數(shù), 模型, 或者是你自己的文件。 提示: 這個類是由系統(tǒng)初始化的,所以,沒有必要自己手動初始化。 有了這個類之后,我們就可以裝載各種文件了 $this-load-library(); $this
12、-load-view(); $this-load-model(); $this-load-database(); $this-load-helper(); $this-load-config();,十一、CI類庫之表單驗證類,CodeIgniter 提供了一個全面的表單驗證和數(shù)據預處理類以幫助縮減你所寫的代碼。,十一、CI類庫之輸入類,輸入類有兩個目的: 為了安全,預處理輸入數(shù)據。 提供helper的一些方法,取得輸入數(shù)據,并預處理輸入數(shù)據。 說明: 系統(tǒng)自動加載此類,不用手動加載。,十一、CI類庫之文件上傳類,CodeIgniter 的文件上傳類允許文件被上傳。您可以設置指定上傳某類型的文件
13、及指定大小的文件。,十一、CI類庫之圖像處理類,CodeIgniter 的圖像處理類可以使你完成以下的操作: 調整圖像大小 創(chuàng)建縮略圖 圖像裁剪 圖像旋轉 添加圖像水印,十一、CI類庫之分頁類,CodeIgniter 的分頁類是一個非常簡單,并且 100% 用戶自定義的類。,十二、CI超級對象,CI構建一個“超級對象”:它把你的整個程序當作一個大的對象。 在config.php中開啟日志以查看 分析源碼,探究超級對象形成過程,Controller.php,CodeIgniter.php,十三、緩存之頁面緩存,頁面緩存 CI支持每個頁面單獨緩存,而且可以設置緩存更新時間。當一個網頁第一次被加載的
14、時候,緩存文件將被保存到application/cache文件夾。下次訪問的時候,系統(tǒng)就會直接讀取緩存文件,然后返回給用戶的瀏覽器。如果緩存文件過期,它將被刪除并重新生成。 啟動緩存 在控制器(controller)的方法(function)內添加如下代碼:$this-output-cache(n); 其中 n 是你希望緩存更新的 分鐘 數(shù)??梢允褂?m/60 來精確到秒,例如 1/60 ,則是精確到 1秒 刪除緩存 如果你不再想使用緩存,僅需將上面的代碼從你的controller里面刪除即可。,此處使用了輸出類output,十三、緩存之數(shù)據庫緩存,數(shù)據緩存 數(shù)據庫查詢結果保存在文本文件中以減
15、少數(shù)據庫訪問。 首次被加載時,數(shù)據庫查詢的結果對象將會被序列化并保存在你服務器的文本文件中。而頁面再次被加載時緩存文件將會替代數(shù)據庫查詢。如此,在被緩存的頁面中,你的數(shù)據庫使用率會降至0。 只有讀類型(SELECT) 查詢會被緩存,因為只有這種查詢會產生結果集。 激活緩存 在服務器上創(chuàng)建一個可寫的目錄以便保存緩存文件。 在文件application/config/database.php中$dbxxxxcachedir 設置其目錄。 激活緩存特性,可以在文件 application/config/database.php 中設置全局選項$dbxxxxcache_on=TRUE,或使用$this
16、-db-cache_on() / $this-db-cache_off()手動設置 刪除緩存 $this-db-cache_delete() 和 $this-db-cache_delete_all(),十四、安全,不安全因素: 通過url惡意訪問 sql注入 xss攻擊 CodeIgniter 嚴格限制 URI 中所能包含的字符,以此幫助你設計的程序減少被惡意數(shù)據入侵的可能。 在接收任何數(shù)據到你的程序之前,不管是表單提交的 POST 數(shù)據、COOKIE 數(shù)據、GET數(shù)據,都推薦你實踐下面的三個步驟: 過濾不良數(shù)據 (XSS 過濾) 驗證數(shù)據以確保符合正確的類型、長度、大小等(表單驗證) 在提交
17、數(shù)據到你的數(shù)據庫之前將其轉換 (插入數(shù)據庫之前轉義所有數(shù)據),十五、錯誤及調試,CodeIgniter將允許你建立自己的錯誤報告 show_error() show_404() CodeIgniter會在找不到目標控制器情況下,自動顯示404消息。 log_message() 使用分析器將在頁面下方顯示基準測試結果,運行過的 SQL 語句,以及 $_POST 數(shù)據。這些信息有助于開發(fā)過程中的調試和優(yōu)化。 該分析器無須手動初始化,只需按照下面的方式激活,他將被輸出類自動裝載。 在控制器中設置以下方法以激活該分析器 $this-output-enable_profiler(TRUE);激活后將產生一個報告并插入您的頁面底部,十六、鉤子,CodeIgniter 的鉤子功能使得您可以在不修改系統(tǒng)核心文件的基礎上來改變或增加系統(tǒng)的核心運行功能。 啟用鉤子 在 application/config/config.php 文件中設定: $configenable_hooks = TRUE; 定義鉤子 鉤子是在 application/config/hooks.php 文件中定義的 掛鉤點 pre_system pre_controller post_controller_con
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件安全人才隊伍建設研究-詳解洞察
- 梧州2025年廣西梧州市事業(yè)單位招聘1257人筆試歷年參考題庫附帶答案詳解
- 2025年中國塑鋼垂簾軌市場調查研究報告
- 2025年針織橫機配件項目可行性研究報告
- 廣州廣東廣州市花都區(qū)花山鎮(zhèn)和郁小學臨聘教師招聘筆試歷年參考題庫附帶答案詳解
- 廣東廣東海洋大學后勤保障部招聘非編制水電維修工(第二次)筆試歷年參考題庫附帶答案詳解
- 2025年球衣網布項目可行性研究報告
- 2025年水電解器架項目可行性研究報告
- 2025至2031年中國旋風式二級回收裝置行業(yè)投資前景及策略咨詢研究報告
- 2025年抗菌防霉乳膠漆項目可行性研究報告
- 2025新譯林版英語七年級下單詞表
- 海洋工程設備保溫保冷方案
- 機房設備搬遷及系統(tǒng)割接施工方案
- 醫(yī)療安全(不良)事件報告制度培訓課件
- 主干光纜、支線光纜線路中斷應急預案
- 跨學科主題學習的思考與策略
- 文藝演出排練指導服務合同
- 醫(yī)院消防安全培訓課件(完美版)
- 2024年青田中小學教師招聘真題
- 行政法-9行政確認
- 人教版(2024新版)一年級上冊數(shù)學第一單元《數(shù)學游戲》單元整體教學設計
評論
0/150
提交評論