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)事件處理器