CI(CodeIgniter)框架入門

什麼是CI框架: CdoeIgniter是爲PHP開發人員提供的一套Web應用程序工具包。他的目的是能夠讓你從零開始更加快速的完成項目,它提供了一套豐富的類庫來滿足我們的日常需求,並且提供了一個簡單的接口和邏輯結構來調用這些庫。CodeIgniter 通過最小化你需要的代碼量,讓你把更多的精力放到項目的創造性開發上。
優勢:

  • CodeIgniter是免費的,通過MIT開源許可協議授權,可以任意使用。
  • 輕量級的,我們的核心繫統只需要一些非常小的庫,這和那些需要大量資源的框架恰好相反。而且,庫都是根據請求動態加載,你需要什麼才加載什麼,所以核心系統是個非常輕快的系統。
  • 快速的,很難找到一個比CodeIgniter更快的框架。
  • 使用MVC架構,CodeIgniter使用了模型-視圖-控制器的架構,它很好的將邏輯層和表示層分離。特別是對於那些使用了模板文件的項目來說更好,能夠減少模板文件的代碼量。
  • 生成乾淨的URL,生成的URL非常乾淨,而且對搜索引擎友好。不同於標準的“查詢字符串”方法,CodeIgniter使用了基於段的方法(默認的URL中包含index.php文件,但是可以通過更改 .htaccess文件來去掉)。
  • 功能強大,擁有全面的類庫,能滿足大多數Web開發任務的需要,例如:訪問數據庫、發送郵件、驗證表單數據、會話管理、處理圖像、處理XML-RPC數據等。
  • 可擴展的,系統可以非常簡單的通過你自己的類庫和輔助函數來擴展,也可以通過類擴展或系統鉤子來實現。
  • 不需要模板引擎,儘管自帶了一個非常簡單的可選的模板解析器,但並不強制你使用模板。模板引擎性能無法和原生PHP代碼相比,另外使用模板引擎還需要學習一種新語法,而使用原生PHP代碼只需掌握基本的PHP語法即可。
  • 擁有全面的文檔
  • 擁有一個友好的用戶社區

應用程序流程:

  • index.php文件作爲前端控制器,初始化運行CodeIgniter所需的基本資源;
  • Router檢查HTTP請求,以確定如何處理請求;
  • 如果存在緩存文件,將直接輸出到瀏覽器,不用走下面正常的系統流程;
  • 在加載應用程序控制器之前,對HTTP請求以及任何用戶提交的數據進行安全檢查;
  • 控制器加載模型、核心類庫、輔助函數以及其他所有處理請求所需的資源;
  • 最後一步,渲染試圖併發送至瀏覽器,如果開啓了緩存,視圖會先緩存起來用於後續的請求。

模型-視圖-控制器

  • CodeIgniter的開發基於MVC設計模式,MVC是一種用於將應用程序的邏輯層和表現層分離出來的方法。在實踐中,由於這種分離所以你的頁面中只包含很少的PHP腳本。
  • 模型: 代表你的數據結構。通常來說,模型類將包含幫助你對數據庫進行增刪改查的方法。
  • 視圖: 是要展現給用戶的信息。一個視圖通常就是一個頁面,但是在CodeIgniter中,一個視圖可以是一部分頁面,他也可以是一個RSS頁面,或其它類型的頁面。
  • 控制器: 是模型、視圖以及其它任何處理HTTP請求所需資源的中介,並生成網頁。
  • CodeIgniter 在 MVC 使用上非常寬鬆,因爲模型不是必需的。如果你不需要使用模型這一層,或是 認爲維護模型比你想象中的複雜很多,那麼你可以忽略它,而只使用控制器和視圖創建你的應用程序。 CodeIgniter 可以讓你直接調用你現有的腳本,甚至你也可以爲系統開發核心類,總之, CodeIgniter 讓你以你感覺最舒適的方式進行開發。

設計與架構目標
CodeIgniter 的目標是在最小化,最輕量級的開發包中得到最大的執行效率、功能和靈活性。爲了達到這個目標,我們在開發過程的每一步都致力於基準測試、重構和簡化工作, 拒絕加入任何對實現目標沒有幫助的東西。從技術和架構角度看,CodeIgniter 按照下列目標創建:

  • 動態實例化: 在 CodeIgniter 中,組件的導入和函數的執行都是在被請求的時候才執行,而不是全局的。除核心資源外,系統不需要任何其他資源,因此係統默認是非常輕量級的。HTTP 請求所觸發的事件以及你設計的控制器和視圖將決定哪些資源是需要加載的。
  • 松耦合: 耦合是指一個系統中組件之間的依賴程度。組件之間的依賴程度越低, 系統的重用性和靈活性就越好。我們的目標就是打造一個松耦合的系統。
  • 組件專一性: 專一性指的是組件對某個目標的專注程度。在 CodeIgniter 中, 每一個類和方法都是高度獨立的,從而可以最大程度的被複用。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章