Serie: PHP-Frameworks Teil 4 - Kohana
Das PHP-Webframework Kohana ist mit dem Ziel gestartet, flink, schnell, ressourcensparend, sicher und komfortabel zu sein. Im Vergleich zur schwergewichtigen Konkurrenz ergeben sich damit einige Vorteile.

Der Markt an PHP-Frameworks ist in den letzten Jahren und Monaten ein wenig unübersichtlich geworden. Eine Vielzahl an Projekten tummelt sich in den Weiten des Internets. Nur wenigen davon ist ein durchschlagender Erfolg beschieden, da bekannte Lösungen wie das Zend Framework, Symfony oder Cake...
Der Markt an PHP-Frameworks ist in den letzten Jahren und Monaten ein wenig unübersichtlich geworden. Eine Vielzahl an Projekten tummelt sich in den Weiten des Internets. Nur wenigen davon ist ein durchschlagender Erfolg beschieden, da bekannte Lösungen wie das Zend Framework, Symfony oder Cake PHP bereits einen Großteil der PHP-Entwickler binden.Nichtsdestotrotz gibt es immer wieder einzelne Frameworks, die einen Blick wert sind, unter anderem, weil sie einige Vorteile gegenüber etablierten Lösungen besitzen. Kohana () ist einer dieser Kandidaten. Im Vergleich zu vielen anderen Lösungen setzt es nicht auf Funktionalität pur, sondern hat das Ziel, schlank und schnell zu sein.
Die Wurzeln
Kohana wurde als Fork des Codeignitor-Frameworks Anfang 2007 gestartet, damals noch unter dem Namen Blue Flame. Das kurz darauf in den jetzigen Namen umbenannte Projekt wurde Ende des Jahres 2007 in der Version 2.0 veröffentlicht.
Diese Version war eine komplette Neuentwicklung. Seitdem hat Kohana auf Quelltextebene keine Gemeinsamkeiten mehr mit Codeignitor (CI). Im Gegensatz zu CI basiert Kohana komplett auf PHP 5 und verfolgt einen strikt objektorientierten Ansatz.
Das Ziel der Kohana-Entwickler ist ehrgeizig: Das Framework soll schnell, kompakt, sauber entwickelt, sehr sicher sein und trotzdem über alle Funktionen verfügen, die für die moderne Webentwicklung notwendig sind. Eine nicht ganz leichte Gratwanderung, die den Machern des Frameworks aber erstaunlich gut gelingt, was zur Beliebtheit von Kohana beiträgt.
Kohana hat erfreulich wenig Abhängigkeiten, nur wenige PHP-Erweiterungen müssen installiert sein, um mit Kohana arbeiten zu können. Zudem gehören diese (SPL, iconv, mcrypt) zu den Standard-PHP-Extensions und sind daher in der Regel immer vorhanden. PHP selbst wird in der Version 5.2.3 oder neuer benötigt.
Entwurfsmuster
Wie die meisten modernen Webframeworks arbeitet auch Kohana nach dem Model-View-Controller-Prinzip. Ziel dieses kurz MVC genannten Entwurfsmusters ist die strikte Trennung von Daten-, Anwendungs- und Anzeigelogik einer Anwendung.
Alle Teile arbeiten weitgehend unabhängig voneinander und haben jeweils eine fest umrissene Aufgabe. Der Model-Part ist für das komplette Datenhandling und somit auch für die Zugriffe auf eine Datenbank verantwortlich.
Für die Umsetzung der Daten in eine grafische Benutzeroberfläche ist der View zuständig. Beide Anwendungsteile werden von einem Controller gesteuert. Er entscheidet, welche Daten des Models in welchem View angezeigt werden.
Diese strikte Trennung hat den Vorteil, dass einzelne Programmteile einfacher ausgetauscht werden können. Sollen beispielsweise die Daten zukünftig nicht mehr in einer Datenbank, sondern in Dateien abgelegt werden, ist lediglich eine Änderung der Klassen im Model notwendig, die restlichen Applikationsteile sind nicht betroffen.
Das MVC-Prinzip eignet sich somit hervorragend für den Einsatz in der Entwicklung grafischer Benutzeroberflächen. Ein positiver Nebeneffekt des Aufbaus einer Anwendung nach dem MVC-Prinzip ist die saubere Strukturierung des Quellcodes, der dadurch sehr viel einfacher zu warten ist.
Controller
Ein Controller ist eine Klasse innerhalb einer Kohana-Anwendung, der eine zentrale Aufgabe zukommt. Er ist das Bindeglied zwischen allen anderen Schichten einer Anwendung und steuert den Ablauf einer Anfrage beziehungsweise entscheidet, welche Programmteile dabei zum Einsatz kommen.