Codelgniter
CodeIgniter是一套給PHP網站開發(fā)者使用的應用程序開發(fā)框架和工具包。它提供一套豐富的標準庫以及簡單的接口和邏輯結構,其目的是使開發(fā)人員更快速地進行項目開發(fā)。使用 CodeIgniter 可以減少代碼的編寫量,并將你的精力投入到項目的創(chuàng)造性開發(fā)上。
Codelgniter的特點[ ]
- CodeIgniter是由Ellislab公司的CEORickEllis開發(fā)的。其核心框架是為這個程序特別編寫的,而其他很多類庫、輔助函數(shù)和子系統(tǒng)則來自于RickEllis和PaulBurdick編寫的內容管理系統(tǒng)ExpressionEngine。來自RubyonRails的靈感啟發(fā)我們創(chuàng)造了一個PHP框架,并且將框架的概念引入到網絡社區(qū)的一般意識中。
- 它是一個小巧但功能強大的PHP 框架,作為一個簡單而“優(yōu)雅”的工具包,她可以為 PHP 程序員建立功能完善的Web 應用程序。如果你是一個與人共享主機并且為客戶要求的期限而煩惱的開發(fā)人員,如果你已經厭倦了那些傻大笨粗的框架,那么 CodeIgniter 就是你所需要的,如果...
- 你想要一個小巧的框架。
- 你需要出色的性能。
- 你需要廣泛兼容標準主機上的各種 PHP 版本和配置(例如 PHP4)。
- 你想要一個幾乎只需 0 配置的框架。
- 你想要一個不需使用命令行的框架。
- 你想要一個不需堅守限制性編碼規(guī)則的框架。
- 你對 PEAR 這種大規(guī)模集成類庫不感興趣。
- 你不希望被迫學習一門模板語言(雖然可以選擇你要求的模板解析器)。
- 你不喜歡復雜,熱愛簡單。
- 你需要清晰、完整的文檔。
CodeIgniter特性[ ]
開發(fā)框架優(yōu)秀與否與它有多少特性沒有太大的關系。你從特性中不能推斷出用戶的體驗、不能體驗到框架設計是不是直接了當,是不是智能。特性也不能告訴你框架代碼的質量如何、性能如何、細節(jié)處理的如何、安全性如何。判斷一個框架的唯一辦法是在使用中了解它。安裝CodeIgniter很簡單,所以,請你使用它。CodeIgniter的主要特性如下:
- 基于MVC體系
- 兼容PHP4
- 超輕量級
- 對數(shù)種數(shù)據庫平臺的全特性支持的數(shù)據庫類
- ActiveRecord支持
- 表單與數(shù)據驗證
- 安全性與XSS過濾
- Session管理
- 郵件發(fā)送類,支持附件,HTML或文本郵件,多協(xié)議(sendmail,SMTP和Mail)及更多。
- 圖像處理類庫(剪裁,縮放,旋轉等)。支持GD,ImageMagick和BetPBM
- 文件上傳類
- FTP類
- 本地化
- 分頁
- 數(shù)據加密
- 基準測試
- 全頁面緩存
- 錯誤日志
- 應用程序評測
- 腳手架(Scaffolding)
- 日歷類
- User-Agent類
- Zip編碼類
- 模板引擎類
- Trackback類
- XML-RPC類庫
- 單元測試類
- “搜索引擎友好”的URL
- 靈活的URI路由
- 支持勾子,類擴展及插件
- 大量的輔助函數(shù)
CodeIgniter 應用程序流程圖[ ]
- index.php作為前端控制器,初始化運行CodeIgniter所需要的基本資源。
- Router檢查HTTP請求,以確定誰來處理請求。
- 如果緩存(Cache)文件存在,它將繞過通常的系統(tǒng)執(zhí)行順序,被直接發(fā)送給瀏覽器。
- 安全(Security)。應用程序控制器(ApplicationController)裝載之前,HTTP請求和任何用戶提交的數(shù)據將被過濾。
- 控制器(Controller)裝載模型、核心庫、插件、輔助函數(shù),以及任何處理特定請求所需的其它資源。
- 最終視圖(View)渲染發(fā)送到Web瀏覽器中的內容。如果開啟緩存(Caching),視圖首先被緩存,所以將可用于以后的請求。
模型-視圖-控制器[ ]
CodeIgniter 是基于模型-視圖-控制器這一設計模式的。MVC 是一種將應用程序的邏輯層和表現(xiàn)層進行分離的方法。在實踐中,由于表現(xiàn)層從 PHP 腳本中分離了出來,所以它允許你的網頁中只包含很少的腳本。
模型(Model)代表你的數(shù)據結構。通常來說,你的模型類將包含取出、插入、更新你的數(shù)據庫資料這些功能。 視圖(View)是展示給用戶的信息。
一個視圖通常是一個網頁,但是在 CodeIgniter 中,一個視圖也可以是一個頁面片段,如頁頭、頁尾。它還可以是一個 RSS 頁面,或任何其它類型的“頁面”。 控制器(Controller)是模型、視圖以及其他任何處理 HTTP 請求所必須的資源之間的中介,并生成網頁。 CodeIgniter 在 MVC 使用上非常寬松,因此模型不是必需的。
如果你不需要使用這種分離方式,或是發(fā)覺維護模型比你想象中的復雜很多,你可以不用理會它們而創(chuàng)建自己的應用程序,并最少化使用控制器和視圖。CodeIgniter 也可以和你現(xiàn)有的腳本合并使用,或者允許自行開發(fā)此系統(tǒng)的核心庫,其目的是,使你可以以最適合你的方式工作。
設計和架構目錄[ ]
鏈接標題CodeIgniter 的目標是在最小化,最輕量級的開發(fā)包中得到最大的執(zhí)行效率、功能和靈活性。 為了達到這個目標,我們在開發(fā)過程的每一步都致力于基準測試、重構和簡化工作,拒絕加入任何對實現(xiàn)目標沒有幫助的東西。
從技術和架構角度看,CodeIgniter 按照下列目標創(chuàng)建:動態(tài)實例化。在 CodeIgniter 中,組件的導入和函數(shù)的執(zhí)行只有在被要求的時候才執(zhí)行,而不是在全局范圍。除了最小的核心資源外,不假設系統(tǒng)需要任何資源,因此缺省的系統(tǒng)非常輕量級。被 HTTP 請求所觸發(fā)的事件,以及你設計的控制器和視圖將決定它們什么時候被引用。 松耦合。耦合是指一個系統(tǒng)的組件之間的相關程度。越少的組件相互依賴那么這個系統(tǒng)的重用性和靈活性就越好。我們的目標是一個非常松耦合的系統(tǒng)。 組件專一性。專一是指組件有一個非常小的專注目標。
在 CodeIgniter 里,為了達到最大的用途,每個類和它的功能都是高度自治的。 CodeIgniter 是一個動態(tài)實例化,高度組件專一性的松耦合系統(tǒng)。它在小巧的基礎上力求做到簡單、靈活和高性能。
CodeIgniter入門[ ]
- CodeIgniter入門非常容易,而且有很全面的中文版用戶開發(fā)手冊,在官方網站上可以了解到更多內容。編輯本段許可協(xié)議本協(xié)議是你和EllisLab公司之間為使用CodeIgniter軟件(以下簡稱“軟件”)達成的法律協(xié)議。獲取軟件的同時你必須同意完全遵守本協(xié)議的條款及條件。只要符合以下條件,你將被允許使用、復制、修改以及分發(fā)本軟件和它相關的文檔,包括你可以修改或者不修改地用于任何目的:1.這個許可協(xié)議的一份拷貝必須包含在分發(fā)的軟件中。2.再分發(fā)源代碼時必須在所有源代碼文件中保留上方的版權提醒。3.以二進制形式再分發(fā)時,必須在文檔以及/或者隨分發(fā)提供的其他物品上保留上面的版權提醒。4.任何修改過的文件必須加上對原始代碼修改的注釋以及修改者名稱。5.任何由本軟件衍生的產品必須在它們的文檔以及/或者隨分發(fā)提供的物品中表明它們來源于CodeIgniter。6.從本軟件衍生的產品可以在名稱中完全不出現(xiàn)"CodeIgniter"或者出現(xiàn)"CodeIgniter",這一點不需要事先從EllisLab公司得到許可。