PHP Frameworks – Die Entscheidung

Einmal zum Vergleich, was meine Kriterien für die Nutzung eines Frameworks sind und wer jeweils besser abgeschnitten hat:

  • Installation/Set Up: Gleichstand
  • Erstes Hello World Skript: Gleichstand
  • Performance ohne Doctrine: DooPHP (nur minimal)
  • Performance mit Doctrine ohne Cache: DooPHP (nur minimal)
  • Erhätliche Module (offiziell oder über Community): Kohana
  • HMVC-Pattern: Kohana
  • Dokumentation: Kohana
  • Community: Kohana
  • Allgemeiner Eindruck: Kohana

Auch wenn DooPHP beim allerersten Eindruck gar nicht mal so schlecht aussah, so muss es sich dann doch in den Punkten Module und HMVC-Pattern geschlagen geben. Bei Kohana hatte ich ein viel besseres Gefühl, was die Nutzung des Frameworks abgeht. Auch wenn ich in beiden Frameworks noch nicht extrem viel gemacht habe, so ging es mir mit Kohana doch irgendwie alles leichter von der Hand, während mir bei DooPHP manches doch noch etwas verkrampft vorkam. Hier scheint es sich doch bemerkbar zu machen, dass DooPHP im Gegensatz zu Kohana noch nicht so lange am Markt ist und hier und da noch etwas holprig in seiner Anwendung ist. Wer kein HMVC-Pattern braucht und ein kleineres Projekt realisieren möchte, der wird mit DooPHP sicherlich auch zurecht kommen. Bei Musik-Sammler.de steckt aber einiges mehr dahinter und da muss ich mich auf mein Bauchgefühl verlassen, mit welchem Framework ich meine am schnellsten zum Ziel zu kommen. Und da hat Kohana eindeutig die Nase vorn. Allerdings ist die Dokumentation für die Version 3 von Kohana noch stark verbesserungswürdig, da eine zentrale und allumfassende Dokumentation noch in der Arbeit ist. Hier muss man sich ggf. über zwei oder drei verschiedene Seiten und dem Forum die Informationen zusammensuchen. Die sind aber zumindestens im Forum in einem Posting zusammengefasst: http://forum.kohanaphp.com/comments.php?DiscussionID=4691&page=1

Da die Entscheidung über das zu verwendende Framework nun gefallen ist, werden sich die nächsten Beiträge dann etwas konkreter mit Programmierung an sich beschäftigen.

Das Salz in der Suppe bei Kohana – Das HMVC Pattern

Wer viel programmiert, dem wird das klassiche MVC-Pattern (Model-View-Controller) sicherlich was sagen. Extremst vereinfacht ausgedrückt: der „Controller“ nimmt einen Request an (z.B. den Aufruf einer Unterseite), ruft das „Model“ auf um Daten aus der Datenbank zu erhalten, die dann an den „View“ weitergegeben werden, der das in Form einer HTML-Seite ausgibt. Eine ganz klassische Trennung von Datenbankzugriffen, Verarbeitung und Ausgabe. Was also zum Geier ist dann das HMVC-Pattern?
Continue reading

Die Frameworks und Doctrine – DooPHP

Diesmal muss ich leider selber etwas austüfteln, denn zur Einbindung in Doctrine in DooPHP findet man im dortigen Forum und auch sonst im Internet keine Tipps wie man die beiden Welten miteinander verknüpft. Ob meine Implementierung der Weisheit letzter Schluß ist, sei mal dahin gestellt. Vielleicht gibt es einen viel sinnigeren Weg als wie ich es gelöst habe, aber da ich sehen wollte, wie weit ich in DooPHP mit einer möglichst geringen Einarbeitungszeit komme, habe ich es erstmal dabei belassen. Als Basis diente das HelloWorld Beispiel aus der DooPHP Dokumentation.
Continue reading

Frameworks und Doctrine – Kohana

Sowohl Kohana als auch DooPHP bringen ihre eigenen Datenbank und ORM-Module mit, deren Benutzung ich allerdings erst erlernen müsste. Die können sich vom Funktionsumfang aber beide nicht mit Doctrine messen und in Doctrine hatte ich mich ja schon ein klein wenig eingearbeitet, so dass für mich die Entscheidung ganz klar für Doctrine fällt. Verständlicherweise findet man in den offiziellen Dokumentationen der Frameworks keinerlei Tutorials für die Einbindung von Doctrine. Schließlich gehen die Entwickler ja davon aus, dass man die mitgebrachten Module benutzt. Daher ist man hier auf die Hilfe der Community angewiesen oder man muss sich selber einen Weg ausdenken, Doctrine in die Framework-Umgebung zu bekommen.
Continue reading

Doctrine – Der Start

Wie im vorherigen Beitrag geschrieben, habe ich mich für Doctrine entschieden was die Anbindung und Abfragen an die Datenbank angeht. Doctrine muss aber erstmal die Datenbankstruktur „kennenlernen“. Bei bestehenden Datenbanken kann man durch einen einfachen Befehl Doctrine dazu bringen, die Datenbank- und Tabellenstrukturen zu scannen und diese Daten werden dann als PHP-Klassen in einem Verzeichnis abgelegt. Diese Klassen kann und muss man später dann erweitern um die ganze Funktionalität von Doctrine nutzen zu können. Dies klingt zwar im ersten Moment nach viel Arbeit, aber wenn man erst mal die positiven Aspekte erkannt hat, ist man da relativ schnell drin. Außerdem muss man ja nicht gleich alle Relationen und andere Dinge schon zu Beginn hinterlegen, sondern man kann dies auch nach und nach machen, wie man es halt braucht.

Aber von Anfang an. Zuerst muss man sich natürlich die aktuellste Version von Doctrine herunterladen und entpacken. Um die PHP-Klassen zu erstellen, braucht man Doctrine noch nicht mal zwingend in ein Framework einbinden, sondern man kann das auch „standalone“ machen. Also einfach ein kleines Verzeichnis im Webroot erstellen und dort den „Doctrine“ Order reinkopieren. Außerdem muss auch noch ein Verzeichnis „Models“ und darin ein Verzeichnis „generated“ erstellt werden und die ggf. mit einer Schreibberechtigung versehen. Dann nur noch zwei PHP-Dateien erstellen:
Continue reading