So finden Sie das passende PHP-Framework
Ratgeber: "PHP"
26.7.2012 von Andreas Hitzig
Die Auswahl an PHP Frameworks ist groß. Wir haben die wesentlichen Kriterien zusammengestellt, damit Sie das richtige Framework finden.
© Internet Magazin
Benötige ich für meine Entwicklungen überhaupt ein Framework? Das ist mit Sicherheit die erste Frage, die sich viele Entwickler und ihre Auftraggeber vor einem Projekt stellen. Neben den Entwicklungsrichtlinien ist dies eine zentrale Frage, die maßgeblichen Einfluss auf den gesamten Entwicklungsweg hat.
Mit dem Einsatz eines Frameworks verfolgen Sie in der Regel verschiedene Ziele: Zum einen soll das Ergebnis ein Programmcode sein, der auch noch von anderen Entwicklern im Nachgang gepflegt werden kann. Darüber hinaus sollte eine Neuentwicklung auf einer möglichst breiten Basis an vorhandenen Funktionen aufsetzen.
Dies ist mit einem Framework gegeben, da es Grundfunktionen in ausreichend getesteter Form zur Verfügung stellt. Eine große Anzahl von Entwicklern nutzt diese bei populären Frameworks regelmäßig, stellt Fehler und Probleme entsprechend schnell fest und bietet Lösungsansätze dafür.
Ein schlagendes Argument ist auch die Entwicklungszeit: Durch den Einsatz des passenden Frameworks lässt es sich spürbar verkürzen, da Sie die Grundfunktionen eben direkt einsetzen können und nicht mehr neu entwickeln müssen.
MVC - Model, View, Controller
Bei den PHP Frameworks gibt es verschiedene Ansätze, wie Programmcode und Daten in Beziehung zueinander stehen. Einer der bekanntesten, auf dessen Basis auch eine größere Anzahl von Frameworks aufsetzt, ist MVC, was für "Model, View und Controller" steht.
Die meisten PHP Frameworks unterstützen aktuell diese Designmethode für Ihren Programmcode, bieten jedoch die Flexibilität, auch im klassischen Sinne zu entwickeln.
Das folgende Beispiel zeigt einen generischen Ansatz, wie die Aufgabenteilung innerhalb einer Anwendung auf Basis von MVC aussieht.
Der MVC-Ansatz ist gerade für Einsteiger nicht immer leicht nachvollziehbar. Gerade die Frage, welche Inhalte in welcher Komponente platziert werden, macht zu Beginn etwas Kopfzerbrechen. Mit ein wenig Übung bekommen Sie den Umgang mit der Design-Methode jedoch gut in den Griff.
Wichtige Funktionen für Frameworks
Neben der Abbildung von Design-Standards sind natürlich die durch das Framework abgedeckten Funktionsgebiete eines der wesentlichen Auswahlkriterien für ein PHP Framework.
Einen guten Überblick bieten Websites wie PHP Frameworks oder auch Social Compare in der die zentralen Funktionen der wichtigsten PHP Frameworks tabellarisch aufbereitet sind.
Abhängig von Ihrer geplanten Entwicklung sehen die Anforderungen an ein Framework natürlich unterschiedlich aus, es gibt jedoch eine Reihe von Eigenschaften, die Ihr Wunschkandidat erfüllen sollte.
Eine der wichtigsten ist eine sinnvolle Unterstützung der Datenbankanbindung: Die meisten Anwendungen benötigen heute einen zentralen serverseitigen Speicher für Informationen. In der Regel kommt die MySQL-Datenbank im Zusammenspiel mit PHP zum Einsatz.
Eine entsprechende Unterstützung sollte somit zu den Grundfunktionen gehören, damit die Kommunikation mit der Datenbank einfacher verlaufen kann. Sollten Sie in Ihrer Umgebung alternative Datenbanken, etwa von Microsoft oder Oracle, einsetzen, achten Sie auf eine entsprechende Flexibilität.
Eine weitere wichtige Eigenschaft, die Sie in die Auswahl mit einbeziehen sollten, ist die Größe und Aktivität der Framework Community. Ein guter Indikator hierfür sind die Beiträge im offiziellen Forum, die Anzahl von Foren und Websites zum Framework sowie offizielle und inoffizielle Tutorials.
Gute Dokoumentation ist ein Muss
Je größer die Anzahl der Anhänger, desto sicherer ist eine Weiterentwicklung, aber auch die Unterstützung bei Problemen und Fehlern im Programmcode.
In diese Kategorie gehört auch das Thema Dokumentation: Eine gute Dokumentation erspart Ihnen die Suche innerhalb des Programmcodes. Ein Framework sollte eine Übersicht aller Funktionen und Klassen zur Verfügung stellen inklusive einer vollständigen Auflistung aller Parameter.
Im optimalen Fall bietet Ihnen das Framework darüber hinaus ausführliche Beispiele und Hinweise, was beim Einsatz zu beachten ist.
Die Popularität eines Frameworks erkennen Sie darüber hinaus an der Anzahl der Bücher, die dazu veröffentlicht wurden. Für die großen Frameworks wie Zend, Yii oder CakePHP gibt es zahlreiche Bücher, wenn auch zumeist nur in englischer Sprache.
Damit ist vor allem für Neulinge der Einstieg in das entsprechende Framework leichter zu realisieren. Prüfen Sie die Bücher vor einem etwaigen Kauf jedoch genau auf ihren Inhalt, damit Sie nicht am Ende nur eine ausführliche Druckversion der Dokumentation kaufen, in der nicht mehr zu finden ist als die zentralen Funktionen und deren Parameter.
Auf diese Zusatzfunktionen sollten Sie achten
Neben diesen weichen gibt es noch eine Reihe harter Faktoren, welche für die Auswahl entscheidend sind. Dies sind die Funktionsbereiche, die Sie mit Ihrer Anwendung abdecken möchten und von denen Sie sich eine entsprechende Unterstützung des Frameworks erhoffen. Die folgende Aufstellung listet einige zentrale Features auf, erhebt jedoch keinen Anspruch auf Vollständigkeit.
Ein entscheidender Punkt sind, wie bereits erwähnt, die vorhandenen Funktionen, die Sie für die Entwicklung Ihrer Anwendung benötigen. Dies sind in der Regel isolierte Einheiten, die nur eine Aufgabe erfüllen, wie etwa die Validierung einer E-Mail-Adresse oder die Generierung eines Passworts.
Die meisten Programme treten in irgendeiner Form in Interaktion mit den Besuchern - oftmals geschieht dies über Formulare. Viele PHP Frameworks bieten für diesen Zweck eine entsprechende Unterstützung an, zum einen beim Aufbau der Formulare, aber auch in der Validierung der Eingaben.
Eigene Logiken für die Frameworks
Viele Anbieter erlauben Erweiterungen von Drittherstellern über definierte Schnittstellen - im Bild die Caching-Lösung Squid.
Abhängig von Ihrer Anwendung spielen auch Funktionen wie Caching oder Sessionverwaltung eine besondere Rolle. Die meisten PHP Frameworks bieten ihre eigene Logik für die Abbildung von Caching-Mechanismen an, teilweise werden auch Produkte von Drittherstellern wie Squid eingebunden.
Gerade wenn Sie Anwendungen mit viel zugrunde liegendem Inhalt realisieren möchten, sollten Sie die Abbildung dieser Funktion mit in Ihre Entscheidung einbinden.
Gleiches gilt für die Verwaltung von Sessions - PHP bietet in seiner aktuellen Version bereits eine akzeptable Unterstützung, die meisten Frameworks haben jedoch noch eigene Funktionen für eine vereinfachte Verwaltung hinzugefügt.
Umfasst Ihr Programm Inhalte, die nur registrierten Anwendern zur Verfügung stehen sollen, benötigen Sie zusätzlich eine Benutzerverwaltung. Entweder Sie setzen an dieser Stelle die Lösung eines Drittherstellers ein oder Sie nutzen die Grundfunktionen, die das Framework zur Verfügung stellt.
In der Regel finden Sie diese Funktionen in der Beschreibung hinter dem Begriff ACL (Access Control List) versteckt. Die meisten Frameworks bieten eine Benutzerverwaltung im Standardumfang, Code Igniter nutzt dafür jedoch das Plug-in eines Drittherstellers.
Zum Abschluss einer jeden Entwicklung stehen umfangreiche Funktionstests an. Diese sind in der Regel zeitaufwändig und nicht gerade sehr spannend. Für diese Zwecke gibt es jedoch Werkzeuge, welche Sie beim Unit Testing unterstützen.
Viele Frameworks bieten eine Integration mit der Anwendung PHP-Unit an oder besitzen ihre eigene Lösung. Da dies gerade bei größeren Entwicklungen viel Zeit ersparen kann, sollten Sie ein besonderes Augenmerk auf diese Funktion legen.
4 Frameworks im Vergleich
Es gibt, wie bereits erwähnt, zahlreiche PHP Frameworks: Die Liste von PHP Framework umfasst 19 Kandidaten, Social Compare listet 16 verschiedene Implementierungen. Aus diesem Grund haben wir auch nur vier Kandidaten herausgepickt, die in den Punkten Leistungsumfang und Beliebtheit einen der vorderen Plätze einnehmen.
PHP Frameworks bietet einen umfassenden Vergleich aktueller Frameworks.
Der erste Kandidat ist Yii, ein recht neues Framework, das jedoch seit seiner ersten Version 2008 schnell an Beliebtheit gewonnen hat. Es handelt sich dabei um ein objektorientiertes, komponentenbasiertes Framework - der Name ist eine Abkürzung des selbstbewussten Statements "Yes it is!". Yii bietet eine Schnittstelle für Drittanbieter, welche auf diesem Weg eigene Funktionen und Bibliotheken beisteuern können.
Eines der bekanntesten Frameworks ist sicherlich Zend, das bereits seit 2005 existiert. Das Framework ist die Basis für zahlreiche bekannte Open-Source-Projekte, wie etwa die Shopsoftware Magento oder die Webanalysesoftware Piwik.
Hinter Zend steckt die kommerzielle Firma Zend Technologies, die neben dem Framework auch zahlreiche weitere Produkte, wie eine IDE oder einen Web Application Server in ihrem Produktportfolio hat. Das Framework bietet eine umfangreiche Funktionsliste und eine sehr detaillierte Dokumentation.
Code Igniter hat im Jahr 2006 das Licht der Welt erblickt und hat ebenso wie Zend eine Firma im Hintergrund, die neben dem Framework weitere Produkte wie etwa die ExpressionEngine auf den Markt gebracht haben.
Das Framework unterstützt auch den MVC-Ansatz, setzt diesen jedoch nicht als komplett vorgegebene Struktur in der Entwicklung voraus. Einer der wesentlichen Vorteile, für den Code Igniter Bekanntheit erlangt hat, ist die schnelle Ausführung von Programmcode.
Ein besonderes Augenmerk auf die Dokumentation legt CakePHP. Das Framework bezeichnet seine Anleitung angelehnt an den Namen als Kochbuch und bietet Ihnen sowohl eine komplette Dokumentation der API, als auch eine komplette themenbezogene Anleitung zur Nutzung.
Framework - Für und Wider
Es gibt kein eindeutiges Votum für oder wider den Einsatz eines Frameworks. Aus diesem Grund sollten Sie diese Entscheidung situativ und abhängig von der Aufgabenstellung treffen. Die folgende Gegenüberstellung von Pros und Cons gibt Ihnen die entsprechenden Ansatzpunkte um die richtigen Fragen zu stellen.
Die Auswahl eines PHP Frameworks gestaltet sich nicht ganz so einfach wie geglaubt. Zum einen liegt dies an der Vielzahl der verfügbaren Kandidaten, aber auch an den vielfältigen Anforderungen, die aus der Entwicklung einer Anwendung entstehen.
Sie sollten sich bei der Auswahl nicht nur auf die aktuellen Anforderungen konzentrieren, sondern auch auf die kommenden. Die Einarbeitungszeit in ein Framework sollte nicht unterschätzt werden. Aus diesem Grund ist es sinnvoll, ein Framework mit einem breiteren Funktionsumfang zu wählen, das höchstwahrscheinlich auch die Anforderungen kommender Projekte abdeckt.
Ratgeber: "HTML5"
HTML5: Quick Reference Guide
Die wichtigsten Tags auf einen Blick: In unserem praktischen Arbeitsblatt finden Sie einen wertvollen Begleiter für die Umstellung Ihrer Webprojekte…
Ratgeber: Urheberrecht
Was tun bei Content-Klau?
Einzigartige Inhalte bieten Lesern Mehrwert und sind ein wichtiges Qualitätsmerkmal. Ärgerlich, wenn sich jemand durch Kopieren an fremden Ergebnissen…
Neue Tipps & Tricks für blitz.io
HTML, CSS, Javascript & PHP im Griff
Wer die Leistung einer Applikation ermitteln möchte, braucht keine Skripte zu schreiben, sondern kann einen der zahlreichen Online-Dienste einspannen.…
Ratgeber: Webentwicklung
Fehlersuche mit Firebug
Die clientseitige Javascript-Entwicklung bietet fast keine Entwicklungsumgebungen und auch keine vernünftigen Werkzeuge zur Fehlersuche. Eine der…
Meteor - die Webentwicklung der Zukunft?
Mit Meteor sollen Entwickler in kurzer Zeit Umgebungen für Webapplikationen erstellen können, ohne sich um lästige Details kümmern zu müssen. Wir…