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.

Tools für Entwickler – 3 Jahre später

Vor 3 Jahren schrieb ich einen Artikel darüber, mit welchen Werkzeugen ich als Entwickler arbeite. Heute schreibe ich ein zweites Mal darüber und vergleiche dabei die Werkzeuge von vor 3 Jahren mit denen von heute. Was hat sich geändert, was für Werkzeuge sind dazugekommen und welche verwende ich gar nicht mehr?

» Weiterlesen

Sencha Touch – Ein Erfahrungsbericht

Sencha Touch League4u iPhone HomeSchon seit längerem stört es mich, dass es sehr schwierig ist League4u.de mit einem Smartphone (in meinem Fall das iPhone) zu bedienen. Es war schnell klar: Eine für Smartphones optimierte Version musste her! Allerdings ist es gar nicht so einfach die Elemente zur Steuerung einer solchen Anwendung für so einen kleinen Bildschirm zu programmieren. Ich habe mich daher entschieden League4u mit einem Framework für mobile Webapplikationen umzusetzen.

Sencha Touch League4u iPhone AufstellungMir war ziemlich schnell klar, dass ich mit Sencha Touch arbeiten will, weil es schick aussieht und die Steuerungselemente professionell wirken. Das User Interface ist dem iPhone sehr gut nachempfunden und lässt sich auch ähnlich flüssig bedienen. Viele der Bedienelemente wurden vom iPhone sogar direkt entnommen. Und da Sencha Touch in JavaScript programmiert ist, muss ich keine neue Sprache lernen und die Anwendung bleibt plattformunabhängig.

Gewöhnungsbedürftig ist dagegen der Aufbau einer Applikation. Die Elemente werden ineinander verschachtelt. Es gibt zum Beispiel ein Tabmenü und diesem können so genannte Items hinzugefügt werden. Ein Item kann ein Panel sein, eine Liste, ein Formular o.Ä., welches wiederum mehrere Items beinhalten kann. Wenn man sich aber auf diesen Aufbau einlässt, kommt man relativ schnell damit klar.

Wie bei jedem Framework ist eine gewisse Einarbeitungszeit vonnöten, aber Dank der vielen Beispiele aus der Kitchen Sink Demo und der Video-Tutorials kann man schnell Erfolge verbuchen. Ich glaube wer bereits mit ExtJS (dem JavaScript Desktop-Framework von Sencha) gearbeitet hat, dem fällt der Einstieg leichter, weil der oben beschriebene Aufbau bei beiden Frameworks sehr ähnlich ist. Bei mir war das nicht der Fall, dementsprechend lange hat es gedauert, bis ich mich eingearbeitet habe. Trotzdem bleibt die gute und vollständige Sencha Touch Referenz ein ständiger Begleiter während der Entwicklung.

Fazit

Ich bin mit Sencha Touch sehr zufrieden. Die Programmierung ist komplett Objektorientiert und daher entsprechend sauber. Meine League4u-Applikation (befindet sich derzeit in der Testphase) sieht sehr professionell aus, lässt sich leicht bedienen und ist mit vergleichbar wenig Aufwand entstanden. Das einzig negative ist, dass die zur Verfügungstehenden Elemente begrenzt sind, aber ich bin damit trotzdem gut ausgekommen. Sencha Touch bekommt von mir daher eine fette Empfehlung für alle, die eine professionelle mobile Webapp bauen wollen!

Sencha Touch League4u iPhone Statistiken