PHP-Frameworks

16. Jun
2009

Schon seit langer Zeit schwirrt mir die Idee zu einem “kleinen” Projekt im Kopf rum. Eigentlich schon seit 2004 (damals, habe ich diese Idee das erste Mal umgesetzt, leider waren meine PHP Kenntnisse damals noch zu buggy, so dass ich das Projekt schnell wieder vom Netz nahm). Seit einigen Tagen, muss ich aber immer öfter dran denken und habe mich entschlossen die Idee nun auch endlich umzusetzen.

Da ich aber möglichst viel Zeit sparen will überlege ich nun ein Framework zu nehmen. Die Vorteile liegen auf der Hand:

  • Weniger Code
  • Dadurch mehr Zeit
  • und die Fehlerquote sinkt (was zusätzlich mehr Zeit bringt)

Nun steh ich aber vor der Frage welches Framework ich einsetzen soll. Ich muss zugeben, dass ich bisher noch nie mit einem PHP Framework gearbeitet habe. Sondern nur mit den AJAX Frameworks Prototype, Script.aculo.us und jQuery.

Nach kurzem googlen, kann ich nun zwei Frameworks (die ich auch vorher schon vom Hören-Sagen kannte :) ) in die engere Auswahl holen: CakePHP und das Zend Framework.

Hier ein paar Facts zum Zend Framework.

zend_framework_logo

Das Zend Framework, wird von sehr vielen Entwickelern hochgejubelt sei es in Blogposts, in Foren oder über Twitter. Ich habe mir das Framework hier heruntergeladen und einen Blick drauf geworfen. Mein erster Eindruck: sehr umfangreich!

Die Installation:

Die Installation ist sehr einfach. Ihr ladet euch das Framework herunter und entpackt es. Im extrahierten Ordner findet ihr einen Ordner namens Library, diesen kopiert ihr in das Verzeichnis in dem eure Dateien liegen. Aus Sicherheitsgründen empfiehlt es sich, den Library Ordner in das Hauptverzeichnis eures Projekts zu legen und alle weiteren nötigen Daten in einen speziellen Unterordner.

Falls ihr nun vorhabt, die mitgelieferten Testdateien auszuprobieren, müsst ihr folgendes Beachten: Die Pfade in den Dateien unterscheiden sich von denen, die wir eben angelegt haben. Wenn ihr z.B. die Amazon-Suche ausprobieren wollt, versucht diese auf den Frameworkordner Zend im selbigen Verzeichnis zurückzugreifen. Das heißt ihr müsst die Pfade entweder anpassen oder ihr schiebt die Datei in das Hauptverzeichnis in dem auch der Ordner Zend (in “Library”) befindet.

Also entweder so:

– Mein Projekt

– library

– Zend

– datei.php

Oder ihr schnappt euch einfach den Zend Ordner, knallt ihn ins Hauptverzeichnis und packt die Datei ebenfalls ins Hauptverzeichnis.

Sicheres arbeiten mit dem Zend Framework

Ich habe oben schon erwähnt, dass es sicherer ist die Projektdaten in einem Unterordner auszuführen und die Library im Hauptverzeichnis zu behalten. Per .htaccess sollte man dann alles außer dem Frontend für den Benutzer vor unbefugten Zugriffen schützen. Ihr findet in diesem Tutorial noch eine sehr gute Erklärung dafür. Die Idee ist folgende:

Ich habe ein Hauptverzeichnis. Darin liegt mein Library Ordner (inkl. Zend Ordner mit den Frameworkdateien). Dann habe ich einen Ordner in dem sich das Frontend für meinen User befindet. Dieser Ordner heißt public. Und ich habe einen application Ordner indem sich die von mir angepassten Dateien befinden. Der User bekommt nur den public Ordner zu sehen. Alles andere wird via .htaccess für den User ausgeschlossen.

Modul – View – Controller

Die Zend Technologie setzt auf MVC, dies steht (wie man unschwer aus der Überschrift erkennen kann) für Modul View Controller. Nach dem MVC Prinzip wird eine Anwendung in drei wesentliche Teilkomponenten aufgeteilt. Die nötigen Datensätze (Die Modul), das Frontend für den Benutzer (View) und sozsuagen die Engine dahinter, die alles steuert (Controller).

Da Zend objektorientiert ist läuft das natürlich alles mit Klassen, Funktionen etc.

Mit der Hilfe des Getting Startes von ZF habe ich mich heute Nachmittag schon ganz gut in die Materie einarbeiten können. Ich kann euch das Tutorial und das umfangreiche Manual nur empfehlen. Außerdem gibt es noch ein paar Screencasts die die Sache sehr gut verdeutlichen.

Nachdem ich jetzt den ganzen Nachmittag mit dem Zend Framework verbracht habe, werde ich mich heute nicht mehr in Cake einarbeiten ;-) um es in diesem Artikel vorzustellen. Stattdessen werde ich jetzt erstmal weiter mit Zend arbeiten und Cake evtl. irgendwann mal hier vorstellen.

Zum Schluss noch mein Fazit: Der erste Eindruck hat sich bewahrheitet, Zend ist extrem umfangreich! Wer glaubt die Nutzung eines Frameworks erspart das Lernen von PHP liegt gewaltig daneben. Zend ist ziemlich komplex und erfordert grundlegende Kenntnisse in PHP.


Anmerkungen:

Kommentare