PHP Framework Benchmark 2017

Bei der Wahl eines geeigneten PHP Frameworks sind eine Menge Aspekte zu berücksichtigen. Ein besonders wichtiger Aspekt dabei spielt sicherlich die Performance, denn wie schnell eine Web-Applikation oder ein Portal die Anfragen bearbeitet, wirkt sich auch auf den späteren Erfolg aus.

Um die Performance zu beurteilen, habe ich drei Schwergewichte und ein alternatives Framework einem einfachen Benchmark unterzogen. Folgende Kandidaten gingen ins Rennen:

  • Zend Framework 3.0.3 Skeletion Application
  • Laravel 5.4.16
  • Symfony 3.2.6
  • Flow Framework 4.0.2 Base Distribution

Die Voraussetzungen:
Getestet wurde auf einem zwei Jahre alten Mac-Mini unter Apache 2.4 mit installiertem PHP 7.1. Den Benchmark selbst übernahm das Tool ApacheBench, das unsere Framework-Instanzen mit insgesamt 1000 Requests bombardiert (20 gleichzeitig).

Ergebnisse

Zend Framework 3.0.3 Skeletion Application

Requests pro Sekunde: 155,08
Gesamtzeit des Tests: 6,448 Sekunden

Laravel 5.4.16

Requests pro Sekunde: 108,17
Gesamtzeit des Tests: 9,245 Sekunden

Symfony 3.2.6

Requests pro Sekunde: 119,15
Gesamtzeit des Tests: 8,393 Sekunden

Flow Framework 4.0.2 Base Distribution

Requests pro Sekunde: 3,88
Gesamtzeit des Tests: 257,952 Sekunden

Requests pro Sekunde


(Mehr ist besser)

Gesamtzeit


(Weniger ist besser)

Fazit

Die Unterschiede zwischen den drei Schwergewichten Zend, Symfony und Laravel sind minimal, trotzdem konnte sich das Zend Framework als klarer Sieger durchsetzen.

Das abgeschlagene Flow Framework enttäuschte dagegen auf ganzer Linie. Mit 3,88 Requests pro Sekunde ist das alternative Framework für High-Traffic-Applikationen nicht zu gebrauchen. Schade.

Die Ergebnisse des Benchmarks sind natürlich mit Vorsicht zu genießen. Der Benchmark hat nur die Basis-Installation des jeweiligen Frameworks getestet. Wenn die Frameworks mit vollwertigen und komplexen Applikationen ausgestattet sind, könnten die Ergebnisse schon wieder ganz anders aussehen. Allerdings kann man anhand dieses Benchmarks bereits erkennen, dass sich das Zend Framework, Symfony und Laravel auf einem ähnlichen Level bewegen.

WordPress vs. TYPO3 auf Trafo2-Blog

Auf dem Agentur-Blog der Trafo2 GmbH habe ich einen Artikel zum Thema WordPress gegen TYPO3 veröffentlicht. Wer daran interessiert ist, findet den Artikel hier:

Royal Rumble: TYPO3 vs. WordPress

„WordPress ist scheiße!“ Oder: Warum WordPress kein CMS ist

Der findige Leser wird in diesem Moment vermutlich denken: „Moment mal, dies ist doch ein WordPress-Blog. Warum steht dann in der Überschrift, dass WordPress scheiße ist?“. Zugegeben, die Überschrift klingt schon ein wenig reißerisch, aber eigentlich geht es darum zu erklären, warum WordPress eben nicht scheiße ist.

„WordPress ist scheiße!“

Wenn man einen Entwickler zu WordPress befragt, wird er vermutlich sofort auf die miese Programmstruktur zu sprechen kommen. Und wenn man sich den Code mal ansieht, kann man das auch durchaus verstehen. Es werden kaum bekannte Design-Patterns verwendet, vieles basiert noch auf prozeduralen Programmcode und an vielen Stellen sieht man richtige Worst-Practice-Beispiele, für die man im Geschäftsalltag wohl ordentlich was auf die Mütze bekommen würde. Trotzdem ist WordPress eines der meistgenutzten Websoftware der Welt. Wie kann das sein?

WordPress ist einfach

WordPress läuft auf wirklich jedem Host und ist super einfach zu installieren. Man braucht keine Vorkenntnisse und auch keine große Einarbeitungszeit. Genau DAS ist es, was die große Mehrheit will. Komplexe Systeme wie TYPO3 oder Drupal sind vielleicht besser zu individualisieren, bieten mehr Funktionen und sind skalierbarer, aber für die breite Masse sind diese Vorteile doch völlig uninteressant. Brauche ich für meinen privaten Blog ein Asset-Manager oder eine kleinteilig einzustellende Rechteverwaltung? Nein – und genau so geht es den meisten anderen auch.

WordPress ist usable

Ich habe selten ein Stück Software gesehen, das für den Nutzer so gut zu bedienen ist. Man braucht nur wenige Klicks, um einen Artikel zu veröffentlichen, einen Kommentar freizuschalten oder um auf die aktuellste Version zu aktualisieren – das nenne ich effizientes Arbeiten. Und das alles kommt ganz ohne viel Schnickschnack oder Effekte aus. Vom Usability-Konzept können sich selbst bekannte CMS mehrere Scheiben von abschneiden.

WordPress ist kein CMS

So, genug gelobt. Kommen wir nun zum problematischen Teil von WordPress.
Es gibt viele, die versuchen aus dem eigentlich genialen Blog-System ein richtiges und vollwertiges CMS zu machen. Sie installieren Plugins für Multimandaten-Seiten, Mehrsprachigkeit, verbesserte Berechtigungen, erweitertes Caching, SEO, WYSIWYG-Editoren, und so weiter und so weiter, nur damit sie am Ende sagen können: „Hier hast du ein WordPress-CMS. Es kann genauso viel wie jedes andere CMS, lässt sich aber so einfach wie WordPress bedienen“. An dieser Stelle kommt die bereits angesprochene Skalierbarkeit ins Spiel. WordPress ist einfach nicht darauf ausgelegt, komplexe Erweiterungen und Plugins einzubinden. Das ist schon alleine wegen der fehlenden Design-Pattern eine schlechte Idee und steigert die Instabilität des gesamten Systems. Außerdem verliert man durch jedes dieser Plugins immer mehr an Usability und das einst so einfache Bedienkonzept geht den Bach runter. Denn sind wir mal ehrlich: So gut die Usability von WordPress auch ist, so sind die Plugins meist auf einem viel geringeren Niveau anzusiedeln.

TL;DR

WordPress ist das beste Blog-System, das es derzeit gibt. Bitte macht daraus nicht etwas, was es eigentlich nicht ist. Wer einen Blog oder eine Homepage mit ein paar einfachen Seiten und News braucht, für den ist WordPress perfekt geeignet. Wer wirklich die Funktionen eines CMS braucht, wird nicht drumrum kommen auch ein vollwertiges CMS einzusetzen.

Ältere Artikel »