PHP Frameworks nutzen: Wann ist das sinnvoll und welches Framework sollte man verwenden?

Im Gegensatz zum selbst programmierten Code bieten euch PHP Frameworks einen einheitlichen Rahmen mit zahlreichen Basis-Funktionalitäten und Sicherheitsfeatures. Die vorgegebenen Strukturen können der Entwicklung des Web-Projekts aber auch im Wege stehen, weil sie eben nicht die Freiheiten einer selbst programmierten Lösung mitbringen. Überdies ist die Auswahl der PHP Frameworks immens, was die Wahl eines passenden Systems nicht gerade erleichtert.

Wie soll man demzufolge das passende PHP Framework finden und wann ist es besser, auf ein Framework zu verzichten und stattdessen selbst Hand an den Code zu legen?

Framework passt immer vs. Das mach ich besser selbst

Einige halten die Diskussion zum Für und Wider der PHP Frameworks für völlig überflüssig. Sie nehmen die Frameworks einfach als das an, was sie sind: nützliche Werkzeuge, welche die Arbeit des Entwicklers erleichtern. Andere wiederum könnten ewig über die Vor- und Nachteile philosophieren. Und dann gibt es noch diejenigen, die nur ihrem selbst geschriebenen Code vertrauen. PHP Framework? Kostet doch nur Zeit, sich da rein zu lesen, und dazu noch viel zu unflexibel.

Es ist daher gar nicht so einfach, die Vor- und Nachteile von PHP Frameworks eindeutig darzustellen, da die Sichtweise, die Erfahrung und nicht zuletzt natürlich auch das jeweilige Projekt großen Einfluss darauf haben.

Fakt ist: Mit PHP Frameworks gibt es eine gemeinsame, wiederverwendbare, wartungsarme Struktur.

Das spart Zeit, ist einfacher, effizienter und sicherer:

  • dem Entwickler werden sich ständig wiederholende Aufgaben abgenommen dank vorgefertigter Code-Elemente und Funktionen
  • es stehen zahlreiche Bibliotheken und Werkzeuge zur Verfügung, u.a. Datenbank-Abstraktion, Session- und Cookiebehandlung, Formularvalidierung
  • Frameworks bieten für viele Probleme bereits Lösungen
  • die Teamarbeit wird vereinfacht, das es klare Framework-Vorgaben gibt
  • ein weit verbreitetes Framework mit einer großen Community bietet ein hohes Maß an Sicherheit, da hier viele bestrebt sind, das System weiter zu verbessern und Sicherheitslücken zu schließen
  • das Framework liefert ein gutes Grundgerüst, das einerseits Orientierung bietet, andererseits aber auch flexibel genug ist, um Anpassungen vorzunehmen – sofern man das notwendige Entwickler-Wissen mitbringt

Einige dieser Vorteile können aber auch schnell zum Nachteil werden:

  • eine vorgegebene Struktur setzt immer auch Grenzen, die Flexibilität hat dementsprechend ebenfalls Grenzen
  • statt eine Hilfe zu sein, kann sich der PHP Framework-Code bzw. Teile davon auch als Ballast erweisen, weil viele „Angebote“ ungenutzt bleiben und für das eigene Projekt überflüssig sind

Selbst den Code zu schreiben, ist auf jeden Fall eine gute Übungsmöglichkeit, eine Möglichkeit, sich auszuprobieren, Basis-Wissen zu erlangen. Geht es jedoch darum, produktiv und effektiv zu arbeiten, eine sichere, durchdachte Grundlage für das Projekt zu schaffen, die auch von anderen bearbeitet und ausgebaut werden kann, dann kommt ihr kaum an einem PHP Framework vorbei.

Und letzten Endes wird es bei den meisten Projekten, unabhängig von deren Umfang nicht auf die Abwägung der Vor- und Nachteile in Bezug auf die Nutzung eines PHP Frameworks ankommen, sondern darauf, welches PHP Framework am besten zu den eigenen Anforderungen passt, welches überdimensioniert ist usw.

PHP Frameworks nutzen: Wann ist das sinnvoll und welches Framework sollte man verwenden?

Die große Anzahl an PHP Frameworks macht es unmöglich, alle Systeme und deren jeweilige Eigenschaften vorzustellen. Im Folgenden werden daher lediglich 4 Frameworks kurz vorgestellt. Deren Auswahl beruht einerseits, darauf, dass es sich um 4 der meistgenutzten PHP Frameworks handelt und andererseits darauf, dass sie sich relativ stark in ihrem Funktionsumfang bzw. in der Verwendung unterscheiden.

Zend

Merkmale:

  • große Bibliothek, großer Funktionsumfang
  • Basis für zahlreiche bekannte Open-Source-Projekte, z.B. Magento oder die Piwik
  • sehr stabile, robuste Entwicklungsumgebung
  • viele Konfigurationsmöglichkeiten – erleichtert Anpassung an persönliche Bedürfnisse
  • Einzelkomponenten sind nicht voneinander abhängig – man kann sich auf die Module beschränken, die wirklich benötigt werden
  • relativ komplexe Sprache

Für kleinere Projekte ist Zend durch seine komplexen Strukturen weniger geeignet. Wer jedoch großen Wert auf einen außerordentlich großen Funktionsumfang und auf die Vielseitigkeit des Systems legt, ist mit PHP Zend genau richtig.

Laravel

Merkmale:

  • eines der jüngsten unter den PHP Frameworks (seit 2011)
  • einfach gehaltene Installation
  • nutzt das PHP Packaging System Composer (größter Unterschied zu vielen anderen Frameworks)
  • strikt nach MVC strukturiert
  • ermöglicht strukturierte Entwicklung von PHP Apps
  • übersichtliche Dokumentation
  • sehr einfach und sauber gehaltener Code
  • modularer Aufbau

Dem Hauptentwickler von Laravel, Taylor Otwell, gelang es, mit seinem PHP Framework die jüngere Entwicklergeneration wieder mehr für PHP zu begeistern. Das System lehnt sich an .NET und Ruby on Rails an und glänzt durch einen eleganten, schlichten, sehr sauberen Aufbau. Dieses zeitgemäße Framework ist im Prinzip für Web-Anwendungs-Projekte jeder Größe geeignet und daher auch das Framework No.1 für PHP-Projekte bei Anexia.

CodeIgniter

Merkmale:

  • schlanke Struktur – trotz festem Rahmen bleibt viel Raum für Selbstentwicklung
  • hohe Performance bei kurzer Einarbeitungszeit
  • basierend auf MVC
  • einfache Konfiguration – Datenbankverbindung und ggf. eine Basis-URL reichen
  • für kleine bis mittlere Projekte geeignet
  • umfangreiches Bibliotheken-Paket
  • zahlreiche Hilfsfunktionen, u.a. Eingabevalidierung, Datenbankkommunikation, Warenkorb-Systems-Implementation

CodeIgniter ist die ideale Wahl für Entwickler, die sich nicht lange mit der Einarbeitung in ein PHP Framework aufhalten möchten, ein hohes Maß an Personalisierung bevorzugen und die auf einen sehr umfangreichen Funktionsumfang à la Zend verzichten können.

Yii

Merkmale:

  • basierend auf MVC
  • schlanke Struktur, hohe Performance, sehr effizient
  • klare, eindeutige Dokumentation
  • eingebauter Code Generator ermöglicht einfache Erstellung von CRUD-Datenbankabfrage für Modelle, Ansichten, Eingabefelder

In Sachen Geschwindigkeit übertrifft Yii sogar noch CodeIgniter und bietet zudem mehr Funktionen als dieses System. Dafür müsst ihr bei Yii aber auch mehr Mühe und Zeit ins Setup und in die Einarbeitung stecken. Sehr gut geeignet ist das PHP Framework für Webanwendungen mit hohem Traffic, z.B. für E-Commerce-Systeme oder Unterhaltungsportale.

 

Fazit:

Welches Framework ihr verwendet, hängt in erster Linie vom Projekt ab, das damit umgesetzt werden soll. Die Aussage, dass dieses oder jenes PHP Framework besser sei, lässt sich also nur in Bezug auf die Zielsetzung der Website treffen.