| Status | Draft |
| Todo | Expand MVC a bit |
Kohana is a PHP5 framework that uses the Model View Controller architectural pattern. It aims to be secure, lightweight, and easy to use.
Strict PHP5 OOP. Offers many benefits: visibility protection, automatic class loading, overloading, interfaces, abstracts, singletons, etc.
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 new bugs and requests within hours.
GET, POST, COOKIE, and SESSION arrays all work as expected. Kohana does not limit your access to global data, but provides XSS filtering and sanity checking of all global data.
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.
No namespace conflicts. Class suffixes and prefixes are used to prevent namespace conflicts.
Auto-loading of classes. All classes in Kohana are automatically loaded by the framework, and never have to be manually included.
API consistency. Classes that require access to different protocols use “drivers” to keep the the visible
API completely consistent, even when the back-end changes.
Powerful event handler. Kohana events can transparently be: added, replaced, or even removed completely.
To be secure means to use best practices regarding security, at all times:
To be lightweight means to provide the highest amount of flexibility in the most efficient manner:
To be easy to use means to provide understandable API and usage documentation, based on community feedback.
Kohana uses the Model View Controller architectural pattern. This keeps application logic separate from the presentation and allows for cleaner and easier to work with code.
In Kohana this means:
A Model represents a data structure, usually this is a table in a database.
A
View contains presentation code such as
HTML,
CSS and JavaScript.
A Controller contains the page logic to tie everything together and generate the page the user sees.