Zum Inhalt springen
Der Guide für ein smartes Leben.
Flinkes, sparsames Rahmenwerk

Teil 5: Serie: PHP-Frameworks Teil 4 - Kohana

Autoren: Redaktion pcmagazin und Timo Haberkern • 21.8.2009 • ca. 2:10 Min

class Post_Model extends ORM {protected $has_one = array('user');}class Comment_Model extends ORM {protected $belongs_to = array('post');}...

class Post_Model extends ORM {
protected $has_one = array('user');
}
class Comment_Model extends ORM {
protected $belongs_to = array
('post');
}

Was ist mit den Properties der Klasse beziehungsweise der Datenbank-Tabelle? Diese müssen nicht explizit in der Klasse aufgenommen werden, sondern werden durch das Framework automatisch anhand der Datenbanktabelle in die Objekte der Klasse übernommen.

Zugriff auf Daten

Der Zugriff auf die Inhalte einer Datenbank ist dank der Datenbankzugriffsklassen sehr einfach. Diese stellen ein objektorientiertes Interface für den Zugriff auf die Datenbanktabellen zur Verfügung.

Zum Lesen eines einzelnen Datensatzes einer Klasse anhand einer ID genügt eine einzige Zeile, wie im folgenden Listing zu sehen ist.

$user = new User_Model( $id );
echo $user->firstname." ".$user->
lastname;

Da Elemente einer Datenbank nur zum Teil anhand einer eindeutigen ID gelesen werden, besitzt das Framework noch weitere Funktionen, die die gleiche Funktion erfüllen, wie die SELECT-Queries von SQL. Kohana nennt diese Funktionen Finder. Das folgende Listing zeigt zwei von ihnen.

$result = ORM::factory('article')->
where('title', $title)->find();
$result = ORM::factory('article')->
find_all($limit,$offset);

Auch zum Speichern und Löschen von Datenbankwerten beziehungsweise Objekten existieren entsprechende objektorientierte Methoden. Auch deutlich komplexere Abfragen, die über mehrere Tabellen ausgeführt werden, können mit Kohana problemlos implementiert werden.

Die Funktionalität der ORM-Schicht von Kohana reicht nicht an Schwergewichte wie beispielsweise Doctrine () heran. Für die alltäglichen Aufgaben ist sie aber meist absolut ausreichend. Im Gegenzug bekommt man eine schlanke und schnelle Datenbank-Zugriffsschicht, die sehr ressourcenschonend arbeitet. Wer speziellere Anforderungen hat, der kann zudem zu jeder Zeit auf natives SQL zur Kommunikation zurückgreifen.

PHP-Frameworks Teil IV - Kohana
Zahlreiche, detaillierte Tutorials helfen beim Einstieg in Kohana.
© Archiv

In der aktuellen Version unterstützt Kohana lediglich MySQL und Postgre SQL als Datenbank-Server. Andere Datenbanktreiber sind geplant, aber noch nicht in einer stabilen Version im Framework enthalten. Die kommende Version 2.4 soll eine Menge zusätzlicher Treiber für Datenbanken wie Oracle, Firebird und Sybase enthalten. SQLite-Support ist in der aktuellen Entwicklungsversion, die via Subversion bezogen werden kann, bereits enthalten.

Fazit

Kohana ist ein Framework, das sich durchaus als Alternative zu anderen PHP-Frameworks platzieren kann. Schwergewichte wie Symfony, Zend Framework oder Cake PHP verbrauchen meist ein vielfaches an Ressourcen und benötigen dadurch auch zwangsläufig mehr Zeit für die Abarbeitung einer Benutzeranfrage. Hier spielt Kohana seine ganze Stärke aus. Trotz vieler Funktionen ist es dennoch kompakt und dadurch sehr schnell.

Natürlich hat Kohana auch einige Nachteile. Verglichen mit anderen Frameworks besitzt das Framework eine deutlich kleinere Benutzer- und auch Entwicklerbasis. Für Einzelentwickler mag dies kein Problem darstellen.

Für ein Unternehmen kann dies eventuell aber ein Kriterium sein, das gegen den Einsatz des Frameworks spricht, da kaum Entwickler mit Kohana-Know-how vorhanden sind. Auch kann Kohana funktional nicht immer ganz mit anderen Lösungen mithalten, auch der Toolsupport kann durchaus noch verbessert werden.

Je nach den Rahmenbedingungen sind die Vor- und Nachteile durchaus anders zu bewerten. Funktional betrachtet hat die aktuelle Version des Frameworks kaum Schwächen und kann auch für größere Anwendungen bedenkenlos als Basis gewählt werden.