Kohana是一款基于
CodeIgniter的 PHP5
框架,其與 CI 最大的區(qū)別便是
Kohana完全采用 PHP5。
2007 年 6 月 1 日,CI 社區(qū)用戶 Todd Wilson (Tido)
發(fā)布了 BlueFlame 1.0 的帖子。BlueFlame 1.0 正式發(fā)布,團隊成員有九人,其中包括 Todd(原團隊 lead developer)、現(xiàn)在 Kohana 的 lead developer、以及本人。該發(fā)布貼引起了 CI 社區(qū)用戶的廣泛關(guān)注。然而由于 BlueFlame 團隊事前沒有與 CodeIgniter 團隊進行溝通,導(dǎo)致一些理解上的小插曲,包括 Rick (CI 的祖父)要求 BlueFlame 團隊停止使用 CI 的社區(qū)資源來發(fā)布 BlueFlame 相關(guān)的信息,以及對 BlueFlame 源
代碼中的授權(quán)部分表示疑義。
最終通過 BlueFlame 與 CodeIgniter 團隊的協(xié)調(diào)溝通,雙方的小小誤解很快便被解化。Rick 在此期間提到 BlueFlame 名稱的潛在版權(quán)問題,于是 BlueFlame 幾天后便正式更名為 Kohana,并注冊了現(xiàn)在的官方網(wǎng)站:
kohanaphp.com。
在 BlueFlame 1.0 之后,Kohana 團隊一直沒有發(fā)布新的版本,之后整個項目一度處于僵化期。盡管如此,trac 上還是有更新進度。在 Todd Wilson “消失”了一陣子后,成員之一 Woody Gilk (Shadow Hand) 接下重任,擔(dān)當(dāng)團隊 leader。
之后 Woody 聯(lián)絡(luò)本人,希望本人承擔(dān) Kohana 官方網(wǎng)站以及 logo 的設(shè)計制作。論壇上仍然可以找到
當(dāng)時我發(fā)的帖子(內(nèi)有網(wǎng)站以及 logo 的草案)。可惜由于時間的因素,我最終沒有將設(shè)計草案轉(zhuǎn)化為
HTML。可喜的是,Geert De Deckere 之后設(shè)計了
一個相當(dāng)出色的方案,這也就是大家現(xiàn)在所見到的 Kohana 的官方網(wǎng)站。 :)
2007 年 11 月,經(jīng)過了團隊成員以及社區(qū)用戶的努力,Kohana 終于發(fā)布了 2.0 版本。
下面我來翻譯一下 Wikipedia 對于 Kohana 的介紹。
歷史
Kohana 是基于 CodeIgniter
PHP 框架開發(fā)的。
開發(fā) Kohana 最主要的原因是 CI 對于 bug 的修復(fù)和處理用戶提交的建議所需的時間過長。許多 bug 在用戶報告后很久才會納入到新版本中,甚至一些 bug 一直沒有被納入。另外,由于 EllisLab 是 CodeIgniter 唯一開發(fā)者,部分用戶對于框架的開放性產(chǎn)生異議,他們希望框架可以更自由開放,從而使社區(qū)對框架的發(fā)展產(chǎn)生一定的影響。
Kohana 與 CodeIgniter 的區(qū)別
- 嚴謹?shù)?PHP5 面向?qū)ο?/strong>編程。優(yōu)勢:可見性保護、自動類裝載、超載、接口類、抽象類以及單件類。
- 延續(xù) CodeIgniter 的設(shè)計模式。CodeIgniter 的用戶能迅速的理解 Kohana 的架構(gòu)和設(shè)計模式。
- 社區(qū)向,而非商業(yè)向。Kohana 是一款基于社區(qū)的作品。Kohana 的開發(fā)者們來自世界各地,有著各自的天賦。這使得開發(fā)速度得以提高,并在短時間內(nèi)提供bug修復(fù)以及反饋用戶提出的建議。
- GET、POST、COOKIE 以及 SESSION 數(shù)組得到改進。Kohana 不對全局數(shù)據(jù)做讀取限制,但依舊提供與 CodeIgniter 相同的數(shù)據(jù)過濾以及 XSS 防護。
- 層疊式資源、模塊以及類繼承。控制器、數(shù)據(jù)模型、庫、助手以及視圖均能夠在系統(tǒng)中的任何地方進行載入。程序的配置選項可被繼承或覆蓋。
- 無命名空間的沖突。類均添加了如“_Controller”之類的后綴,從而使得用戶的控制器和數(shù)據(jù)模型可被同時同地裝載。
- 真正的自動類裝載。這包括庫、控制器、數(shù)據(jù)模型以及助手。與 CodeIgniter 不同,Kohana 的自動裝載是真正意義上的動態(tài)裝載,而并非預(yù)先裝載。
- 助手為靜態(tài)類,而非函數(shù)。例如,在 CI 中使用的 form_open(),在 Kohana 中為 form::open()。
- 庫驅(qū)動以及 API 的一致性。庫能夠使用不同的驅(qū)動來處理不同的外部 API。例如,session 的儲存有數(shù)據(jù)庫、cookie 和 native 幾種,但它們均使用相同的接口。這使得庫可以不斷的添加新的驅(qū)動,但不會影響到 API 的一致性。
- 強大的事件處理器。Kohana 的事件可被動態(tài)的添加、替換或刪除。這使得用戶能在 Kohana 執(zhí)行的過程中動態(tài)做更改,而不影響原有的系統(tǒng)代碼。
特性
- 高安全性
- 輕量級代碼
- 學(xué)習(xí)周期短
- MVC 設(shè)計模式
- 100% UTF-8 兼容
- 松弛耦合架構(gòu)
- 易擴展性
技術(shù)
- 嚴謹?shù)?PHP5 面向?qū)ο缶幊?br />
- 用 SQL 助手實現(xiàn)簡單的數(shù)據(jù)庫抽象層
- 多 session 驅(qū)動(native、數(shù)據(jù)庫、cookie)
- 動態(tài)事件處理器