PHP Frameworks im Vergleich

Durch einen Nachricht auf der Website des PHP Magazins bin ich auf einen interessanten Blogbeitrag von David Otton gestoßen.

David und sein Team haben in der Vergangenheit mehrere PHP Frameworks genauer unter die Lupe genommen. Dabei haben sich sich unter anderem CodeIgniter, CakePHP, Symfony und das Zend Framework angeschaut. Sie sind dann am Ende zu dem Schluss gekommen, dass für ihre Zwecke das Zend Framework am geeignetsten ist. Einer der Hauptgründe ist die Lose Kopplung der verschiedenen Framework Komponenten. Bei manch anderem PHP Framework ist es gar nicht so leicht, wenn man nur bestimmte Teile verwenden möchte. Aber lest selbst:

http://www.otton.org/2008/08/05/frameworks-libraries-php-zend/

Dabei fällt mir ein, vor kurzem wurde auch über einen anderen Vergleich von PHP Frameworks berichtet. Leider gibt es diesen Vergleich nur auf französisch. Hat das Dokument eigentlich schon mal jemand ins Deutsche oder Englische übersetzt?

Hier noch ein paar Übersichten und Feature Vergleiche, die teilweise etwas älter sind:

12 Antworten für “PHP Frameworks im Vergleich”

  1. Christian Schmitz sagt:

    Mit agavi (http://www.agavi.org/) befindet sich ein weiteres agiles und leichtgewichtiges Framework im Rennen um die Gunst des Entwicklers. Mein absoluter Favorit!

    Vorletzte Woche gab es einen hervorrangenden Vortrag zu agavi auf der PHPLondon (http://www.phplondon.org) von einem der Kern-Entwickler: http://de.sevenload.com/videos/MrwrTXxS-PHPLondon-Agavi-2008-08-07

    Viele Grüße
    Christian

  2. Christian Achatz sagt:

    Um die Liste der Tests zu komplettieren, hier noch der Link zu einem Vergleich von diversen Frameworks unter etwas anderen Gesichtspunkten. Das Ergebnis – vor allem beim Thema Performance – ist wirklich interessant!

    http://adventure-php-framework.org/Seite/049-PHP-Frameworks-im-Test

  3. Zend Framework gewinnt PHP Framework Vergleich für Facebook, Xing, StudiVZ » Ralfs PHP und Zend Framework Blog sagt:

    [...] PHP Frameworks im Vergleich [...]

  4. Ralf Eggert sagt:

    Hallo Christian A.,

    da hast du dir mit deinem Vergleich ja sehr viel Mühe gemacht. Vielen Dank für den Link. Ich habe aber bei deinem Vergleich ehrlich gesagt hinsichtlich der Objektivität so meine Bauchschmerzen, schliesslich scheinst du an dem Adventure PHP Framework nicht unwesentlich beteiligt zu sein und da ist es (zumindest für mich) nicht überraschend, dass dein Framework bei deinem Vergleich weit vorne landet. Bitte nicht falsch verstehen, jeder soll mit dem Framework glücklich werden, dass ihm die Arbeit am besten erleichtert. Habe früher selber mein eigenes Framework entwickelt, bin aus dem Alter aber Gottseidank schon raus… ;-)

    Hinsichtlich der Performance von PHP Frameworks hier noch ein weitere Vergleich, bei dem CakePHP deutlich hinter dem Zend Framework landet:

    http://www.avnetlabs.com/php/php-framework-comparison-benchmarks

    Danke und Gruss,

    Ralf

  5. Christian Achatz sagt:

    Hallo Ralf,

    die Bewertung der Objektivität aus dieser Perspektive ist sicher nicht ganz einfach. Dieser Tatsache bin ich mir bewusst, jedoch ist der der Artikels nicht darauf ausgelegt, dass das aufgezeigte Ergebnis auch eintritt. Der von mir vorgenommene Vergleich ist auch etwas mehr auf die enterprise-Schiene ausgelegt, in der es um die Implementierung von komplexen und in unterschiedlichen Projekten und Umgebungen einsetzbaren Applikationen geht. Diese Bereiche sind sind bei den genannten Kontrahenden offensichtlich nicht im Fokus.

    Was die Performance angeht, so habe ich in der Diskussion mit diversen Entwicklern mehr als einmal den Tenor vernommen, dass die Performance des ZF nicht befriedigend sei. Begründet ist das IMHO in der Architektur des Dispatching (Routing), der Verarbeitung der View-Komponenten und der Verwendung des PHP include_path, der – analysiert man die Filesystem-Operationen – deutliche Einbußen gegenüber anderen Konzepten für das dynamische Laden von Komponenten besitzt.

    Viele Grüße,
    Christian

  6. Ralf Eggert sagt:

    Hallo Christian,

    tut mir Leid, aber mit der Aussage, dass die “enterprise-Schiene [...] bei den genannten Kontrahenten offensichtlich nicht im Fokus” seien, bestärkst du meinen Eindruck der fehlenden Objektivität leider nur noch mehr. Dem Zend Framework zu unterstellen, nicht für Enterprise-Projekte geeignet zu sein, zeigt mir schon, wie wenig du dich tatsächlich damit beschäftigt hast.

    Hinsichtlich der Performance bleibt zu sagen, dass das Release 1.7.0 ganz im Zeichen der Performanceoptimierung stehen wird. Da sehr viele kluge Köpfe an dem ZF entwickeln, bin ich mir sehr sicher, dass die Performance deutlich verbessert werden wird. Zudem ist die Ausführungsgeschwindigkeit gerade bei so manchem Enterprise-Projekt nicht das ausschlaggebende Argument. Wichtiger ist die Geschwindigkeit, mit der die Entwickler das Projekt umsetzen können, der Rest ist dann serverseitige Optimierung durch Opcode Caching und Serverclustering.

    Gruss,

    Ralf

  7. Alexander Schmidt sagt:

    Hi Ralf,

    ich denke Christian spielt eher auf eine Aussage aus David’s Artikel an:

    If you abandon large parts of the framework, you can even get away with replacing the whole MVC architecture with something a bit more sensible like PAC. (The new Zend_Layout component supports two-step rendering, which alleviates many of the problems with MVC, but it’s hardly an ideal solution).

    Gerade was Views angeht, ändert sich ja gerade im ZF einiges bzw. wurde schon geändert.
    Ich hoffe, dass das ZF in Zukunft eine noch bessere Hilfe zur Implementierung von Modularer Software bietet.
    Momentan behindert das View-Konzept den Einsatz flexibler Module. Ansonsten sind viele Komponenten enterprise-ready – andere aber auch nicht.

  8. Christian Achatz sagt:

    Hallo Ralf,

    da musst du etwas falsch verstanden haben. Mein Satz dazu war

    Der von mir vorgenommene Vergleich ist auch etwas mehr auf die enterprise-Schiene ausgelegt, [..]

    . Will heißen: der Vergleich legt genau darauf Wert!

    Beispiel: Erstellung und Handling von Formularen. Nichts ist selbstverständlicher als ein Formular, nichts wird aber gleichzeitig unterschiedlicher behandelt. In genau diesen Themen versteckt sich, wie lange ein Entwickler benötigt um eine Funktion / ein Modul zu entwickeln (Stichwort: time to market). Bietet ihm das eingesetzte Framework hier ein probates Mittel ist der Entwickler natürlich klar im Vorteil.

    [..], der Rest ist dann serverseitige Optimierung durch Opcode Caching und Serverclustering.

    Diese Aussage halte ich für sehr gefährlich! Hardware wird Code-Optimierung nie ersetzen können und dürfen. Tendiert der Code schon grundsätzlich zu langsamen Ausführungszeiten und/oder hoher Systemlast, wird er das auch im vorkompilierten Zustand tun.
    Aus meiner Erfahrung im Bereich Webhosting-Infrastrukturen und Clustern weiß ich von einigen Negativ-Beispielen zu berichten, die exakt aus diesem Trugschluss entstanden waren.

    Zudem ist die Ausführungsgeschwindigkeit gerade bei so manchem Enterprise-Projekt nicht das ausschlaggebende Argument.

    Diese Meinung muss ein Relikt aus der dotcom-Blase sein. Mit genau diesem Problem hat z.B. Intershop zu kämpfen. Sie verlieren auf Grund zu langsamer Software deutliche Marktanteile gegenüber schnelleren Lösungen.

  9. Ralf Eggert sagt:

    Hallo Christian,

    dennoch verwundert es mich, dass das ZF bei deinem Vergleich vergleichsweise schlecht weg kommt. Gerade das ZF wird oft als besonders geeignet für den Enterprise Bereich bezeichnet. Mit Zend_Form bietet das ZF auch ein sehe flexibles Tool zum Formularhandling. Meine grundsätzliche Skepsis an der Unabhängigkeit beim Erstellen des Vergleiches bleibt bestehen…

    Gruss,

    Ralf

  10. Ralf Eggert sagt:

    Ok, jetzt sehe ich, wo der Hund begraben ist. Dein Test ist ja über ein Jahr alt! Das ist ja uralt! ;-) Habe eben erst bemerkt, dass du die Version 1.0.1 getestet hast. Dann warte noch mal, bis die 1.7.0 Version erschienen ist und wiederhole dann deinen Test… ;-) ok, kleiner Scherz…

    Gruss,

    Ralf

  11. Christian Achatz sagt:

    Hallo Ralf,

    es war ohnehin geplant, den Artikel in diesem Jahr nochmal neu aufzulegen. Sollten wir dazu keine Zeit haben, werden wir auf jeden Fall Performance-Tests durchführen. Ich bin gespannt … ;-)

    Viele Grüße,
    Christian Achatz

  12. Christian Achatz sagt:

    Hallo zusammen,

    noch ein Nachtrag zum Thema Performance:

    - http://www.yiiframework.com/performance
    - http://adventure-php-framework.org/Seite/103-Yii-vs-APF

Hinterlasse eine Antwort