Kohana (Web Framework)

From Wikipedia, the free encyclopedia

Kohana
Kohana logo
Developed by Kohana Software Foundation[1]
Latest release 2.1.1 / February 6, 2008 (2008-02-06); 123 days ago
Preview release 2.2.0
Written in PHP
OS Cross-platform
Genre Web application framework
License BSD-style open source license
Website http://kohanaphp.com
Cascading resources visualized.
Cascading resources visualized.

Kohana, formerly Blue Flame, is an open source, PHP5, web application framework that uses the Model View Controller architectural pattern. It aims to be secure, lightweight, and easy to use.[2]

Contents

[edit] History

Kohana was originally created as a project fork of the CodeIgniter PHP framework under the name Blue Flame. The principal reason for the fork was to create a more community-based web application framework as many users were frustrated with CodeIgniter's lack of bug fixes and inclusion of new features requested by the community. In July 2007, Blue Flame was renamed to Kohana to avoid possible copyright issues[3].

Rick Ellis - the creator and owner of CodeIgniter - was happy to see his project become forked but was reluctant to give support (including resources), frustrated at Blue Flames's lack of CodeIgniter separation in the copyright statements, urged the project to make it's own user guide, and suggested a name change in case of copyright infringement[4].

The Blue Flame folks are certainly allowed to fork CI, but using our forums and resources isn’t OK. Just like other product forks (like ADODB Lite, WordPress, and others), they need to develop their own website and resources. Using ours not OK.

Does anyone think this is an ethical practice? Would it be OK for me to fork WordPress and use their forums to support it? Open source means you can use our source code for your purposes, it doens’t mean you can use our resources. There is a difference.

[edit] Differences Between Kohana and CodeIgniter

  • Strict PHP5 OOP. Offers many benefits: visibility protection, automatic class loading, overloading, interfaces, abstracts, and singletons.[5]
  • Kohana has joined the GoPHP5 initiative. All releases from 2.2 on will conform with this project.[5]
  • Continues CodeIgniter design patterns. Anyone who has used CodeIgniter will quickly understand Kohana's structure and design patterns.[5]
  • Community, not company, driven. Kohana is driven by community discussion, ideas, and code. Kohana developers are from all around the world, each with their own talents. This allows a rapid and flexible development cycle that can respond to bugs and requests within hours, instead of days or months.[5]
  • GET, POST, COOKIE, and SESSION arrays all work as expected. Kohana does not limit your access to global data, but offers the same filtering and XSS protection that CodeIgniter does.[5]
  • Cascading resources, modules, and inheritance. Controllers, models, libraries, helpers, and views can be loaded from any location within your system, application, or module paths. Configuration options are inherited and can by dynamically overwritten by each application.[5]
  • No namespace conflicts. Class suffixes, like _Controller, are used to prevent namespace conflicts. This allows a User's controller and Users model to both be loaded at the same time.[5]
  • True auto-loading of classes. This includes libraries, controllers, models, and helpers. This is not pre-loading, but true dynamic loading of classes, as they are instantiated.[5]
  • Helpers are static classes, not functions. For example, instead of using form_open(), you would use form::open().[5]
  • Library drivers and API consistency. Libraries can use different "drivers" to handle different external APIs transparently. For example, multiple session storage options are available (database, cookie, and native), but the same interface is used for all of them. This allows new drivers to be developed for existing libraries, which keeps the API consistent and transparent.[5]
  • Powerful event handler. Kohana events can by dynamically added to, replaced, or even removed completely. This allows many changes to Kohana execution process, without modification to existing system code.[5]

[edit] Features

  • Highly secure
  • Extremely lightweight
  • Short learning curve
  • Uses the MVC pattern
  • 100% UTF-8 compatible
  • Loosely coupled architecture
  • Extremely easy to extend

[edit] Technology

  • Strict PHP5 OOP
  • Simple database abstraction using SQL drivers
  • Multiple library drivers (Session, Database, Payment) for a consistent API
  • Powerful event handler allows small modifications dynamically

[edit] Third-party Vendors

Vendor Usage Inclusion
phputf8 All of the Kohana UTF-8 functions are ported from the phputf8 project[6] Core
Popoon The default XSS filter used by Kohana was originally created by Christian Stocker for the popoon framework. The original file is called externalinput.php[6] Core
HTML Purifier The alternative XSS filter used by Kohana is HTML Purifier[6] Optional
SwiftMailer The recommended way to send emails in Kohana is using SwiftMailer[6] Optional
PHP Markdown Markdown is a simple text-to-HTML formatting tool[6] Optional

[edit] Release History

Colour Meaning
Red Old release; not supported
Yellow Old release; still supported
Green Current release
Blue Future release
Product Name Major Version Code Name Minor Version Release Date Significant Changes
BlueFlame 1.0 1.0 2007-05-31[4]
  • Initial release
  • Forked from CodeIgniter 1.5.4 (pre-release, svn revision 566)[4]
Kohana 2.0 Superlime 2.0 2007-11-08[7]
  • Complete rewrite[7]
  • Dropped PHP4 support in favour of PHP5[3]
  • Fully OOP framework[3]
  • No legacy code[3]
  • Modules included[3]
  • Cascading resources concept[3]
2.1 Schneefeier 2.1.0 2008-02-05[7]
  • New libraries: Cache, Image, ORM, Payment
  • New helpers: num, expires, email, html::link(), html::breadcrumb(), arr::binary_search(), valid::standard_text(), text::widont();
  • New modules: Auth & Forge; PostgreSQL & MySQLi drivers
  • gzip output compression, bug fixes & API changes[8]
2.1.1 2008-02-06[7]
  • Fixed bug with extending helpers
  • Added English (UK), German and Macedonian languages[9]
2.1.2 No date set
  • Added: KOHANA_IS_WIN constant for checking for a Windows environment
  • Fixed: hidden fields not being included in custom views; user_agents.robots typo[10]
2.2 Efímera 2.2.0 No date set
  • New libraries (Captcha)
  • New helpers (upload, format, etc.)
  • New configuration attributes,
  • New drivers (MSSQL, PayPal Pro)
  • General cleanup, optimization and bug fixes

[11]

[edit] External links

[edit] See also

[edit] References

Languages