In den sozialen Medien fragen neue PHP-Entwickler oft: „Welches Framework soll ich für mein Projekt verwenden?“ und im Allgemeinen lautet die Antwort „Laravel“ oder „Symfony“.
Obwohl dies beides gute Optionen sind, sollte die richtige Antwort auf diese Frage lauten: „Was soll das Framework leisten?“
Das richtige Framework sollte das tun, was Sie brauchen, ohne jede Menge Funktionen, die Sie nie nutzen werden.
Wenn Sie eine Website mit einer Route erstellen, würde die Verwendung von Laravel oder Symfony zu viel Aufwand für die Entwicklung der Website bedeuten, während für eine komplexe Website Laravel oder Symfony möglicherweise die richtige Wahl sind.
Mikro-Frameworks eignen sich hervorragend zum Erstellen kleiner bis mittelgroßer Websites, die nicht alle Funktionen benötigen, die ein Full-Stack-Framework bietet.
Obwohl es viele gibt, sind Slim und Flight PHP beide großartige Beispiele für Mikro-Frameworks.
Kürzlich habe ich eine kleine Website erstellt, die den Benutzer auffordert, 10 datenbankbezogene Fragen zu lösen. Es gab drei Routen und einige grundlegende Abfragen, um die Fragen abzurufen und die Antworten zu vergleichen.
Für ein kleines Projekt wie dieses ist ein Mikro-Framework eine gute Wahl. Ich habe die Seite sowohl auf Slim als auch auf Flight PHP erstellt, um sie zu vergleichen.
Wenn Sie noch nie ein bestimmtes Framework verwendet haben, ist die Verwendung des bereitgestellten Skelettprojekts im Allgemeinen ein guter Ausgangspunkt.
Das Skelettprojekt von Flight PHP entspricht im Wesentlichen meinen Erwartungen: geringes Gewicht, einfaches MVC-Setup, leicht verständliche Ordnerstruktur und eine Übersicht darüber, wo alles im Projekt abgelegt werden soll.
Für jemanden, der mit dem Framework noch nicht vertraut ist, ist der Lernaufwand für die Inbetriebnahme minimal.
Wenig Composer-Bibliotheken, insgesamt nur 5 (einschließlich der Kernbibliothek), 4 werden in der Produktion verwendet.
Die Produktionsgröße für das Skelett betrug 1,6 MB.
Slims Skelettprojekt überraschte mich. Die Verzeichnisstruktur war komplexer als ich erwartet hatte. Eher auf eine Struktur ausgerichtet, die in einem größeren Projekt als in einem kleinen Projekt verwendet werden kann. Für ein Mikro-Framework war dies nicht zu erwarten.
Das Slim-Skelett war etwas schwerer als Flight PHP. 21 Komponistenbibliotheken, davon 9 in der Produktion verwendet. Die Produktionsgröße des Projekts betrug 3,3 MB.
Beide funktionierten sofort, es waren nur minimale zusätzliche Konfigurationen erforderlich.
Anstatt die Skelette zu verwenden, habe ich beschlossen, die Websites zu erstellen, indem ich mein eigenes Setup erstellte. Der Vorteil dabei ist, dass ich die Frameworks an meine Bedürfnisse anpassen konnte und sehen konnte, wie flexibel sie auf unterschiedliche Strukturen reagieren.
Einer der großen Vorteile der Verwendung von Mikro-Frameworks besteht darin, dass Sie sie ohne unnötigen Overhead genau so erstellen können, dass sie genau das tun, was Sie benötigen, und bei Bedarf Funktionen und Bibliotheken hinzufügen können.
Mein Setup mit Flight PHP unterschied sich nicht wesentlich vom Grundgerüst. Am Ende hatte ich zwar weniger Verzeichnisse und andere Composer-Bibliotheken, aber strukturell war es ähnlich.
Bei Slim unterschied sich die Struktur des Projekts deutlich vom Grundgerüst.
Es war schön, dass Slim flexibel war und keine Annahmen über die Struktur machte und mit einer völlig anderen Struktur als dem Skelett gut funktionierte.
Flight PHP ist auf diese Weise auch flexibel und ermöglicht bei Bedarf komplexere Strukturen. Das Hinzufügen neuer Bibliotheken zum Framework war unkompliziert.
Routenführung
Aus Routing-Sicht war die Zusammenarbeit mit beiden angenehm. Beide ließen sich leicht einrichten, ohne dass viel Dokumentation erforderlich war.
Routen in Flight PHP waren etwas einfacher einzurichten als Slim und benötigten dafür weniger Code, aber beides war nicht schwierig einzurichten.
Routing-Gruppen, Regex-Fähigkeiten und Middleware-Optionen machten Routen flexibel und dennoch einfach zu handhaben.
Datenbankverbindungen
Bei Slim wird erwartet, dass Sie ein ORM wie Eloquent oder Doctrine für Ihre Datenbankabfragen verwenden, während Flight PHP einen einfachen Wrapper für PDO bereitstellt, der verwendet werden kann, wenn Sie müssen und optional können Aktive Datensätze dem Projekt zur Abfrageerstellung hinzugefügt werden.
Für ein kleines Projekt wie das, an dem ich arbeitete, schien die Verwendung eines ORM etwas mehr als nötig zu sein, also habe ich schließlich eine kleine PDO-Wrapper-Klasse für Slim erstellt, ähnlich der, die in Flight PHP integriert ist .
ORMs sind großartig, aber die eingebaute Flexibilität zu wählen, wie ich Datenbankabfragen codieren möchte, ist eine gute Funktion.
Allgemeine Codierung
Sowohl Slim- als auch Flight-PHP-Frameworks ermöglichen es Ihnen, Code auf Ihre eigene Art zu schreiben.
Einige Frameworks neigen dazu, Sie dazu zu zwingen, auf eine bestimmte Art und Weise zu programmieren, und manchmal kann es sich anfühlen, als würden Sie gegen das Framework kämpfen.
Frameworks sollten mit Ihnen und nicht gegen Sie arbeiten, und beide hatten das Gefühl, mit mir zu arbeiten.
Slim bietet außerdem eine Reihe praktischer Add-ons, darunter CSRF-Integration und HTTP-Caching.
Flight PHP bietet zusätzliche Add-ons, einschließlich Berechtigungen und Active Record.
Alle diese Add-ons sind hilfreiche Ergänzungen, ohne dass Lösungen von Drittanbietern verwendet oder eigene Lösungen erstellt werden müssen.
Die Rückgabe von JSON als Antwort ist in Flight PHP sauberer als in Slim. Slim 3 hatte eine praktische withJson-Antwort. Während sich Slim 4 stärker an PSR-7 hält, bedeutet dies, dass zum Erstellen der JSON-Antwort mehr Code erforderlich ist.
Wenn ich häufig JSON-Antworten verwenden würde, würde ich wahrscheinlich einen Wrapper erstellen, um es bequemer zu machen und gleichzeitig den PSR-7-Standard einzuhalten.
Dies ist ein wesentlicher Unterschied zwischen den beiden Frameworks. Slim ist der Meinung, dass es stärker angepasst werden muss, indem Klassen erstellt werden, um die Codebasis zu bereinigen und zu vereinfachen, während Flight PHP dies bereits für Sie erledigt hat.
Slim bietet eine Reihe von Hilfs-Middleware. Damit einige Funktionen funktionieren, ist die Middleware erforderlich.
Ein Beispiel hierfür ist das Abrufen von Daten aus Javascript mithilfe von FETCH. Slim verfügt über eine Methode getParsedBody, um aus der POST-Anfrage ein Datenarray zu erstellen.
Um es verwenden zu können, muss jedoch die addBodyParsingMiddleware zum Container hinzugefügt werden.
Es ist eine kleine Falle für neue Entwickler, bietet aber auch Zugriff auf optionale Funktionen, die den Gesamtbedarf des Frameworks verringern können, indem nur die Funktionen aktiviert werden, die Sie benötigen.
Flight PHP erreicht dies über eine Konfigurationsdatei. Einige Funktionen können über die Konfiguration und nicht über die Middleware-Aktivierung aktiviert und deaktiviert werden.
Geschwindigkeitstests
Benchmarks zeigen, dass der Vergleich der beiden interessante Ergebnisse liefert: Slim übertrifft Flight PHP in einigen Bereichen, während Flight PHP Slim in anderen Bereichen übertrifft.
Ein Test der beiden Frameworks mit meinem eigenen Code zeigte, dass Flight PHP schnellere und konsistentere Antwortzeiten hatte als Slim.
Frontend
GET-Anfrage, die JSON zurückgibt
POST-Anfrage, die JSON zurückgibt
Was ich bemerkenswert fand, waren die Ausreißerspitzen bei der Verwendung von Slim.
Das mehrmalige Durchführen dieser Tests führte jedes Mal zu ähnlichen Ergebnissen wie die oben gezeigten, mit im Allgemeinen guten Reaktionszeiten für beide, aber mit Ausreißerspitzen in Slim, die beim Testen von Flight PHP nicht auftraten, und Flight PHP schnitt im Allgemeinen besser ab Reaktionszeiten.
Wenn Sie sich noch nicht an Mikro-Frameworks gewagt haben, probieren Sie sie aus. Es gibt einige davon und es kann eine großartige Lernerfahrung sein, sie auszuprobieren und zu sehen, was Ihnen an jedem gefällt und was nicht eins.
Sowohl Slim als auch Flight PHP sind großartige Mikro-Frameworks.
Slim ist ein solides Framework mit einigen nützlichen Funktionen, das für Sie leise funktioniert.
Flight PHP ist leichter und seine Einfachheit macht das Erlernen des Frameworks wirklich einfach.
Gute Reaktionszeiten und einfacherer Code, um dasselbe zu erreichen, machen es zu einer wirklich guten Wahl für die Verwendung eines Mikro-Frameworks.
Nachdem ich diese beiden einander gegenübergestellt habe, bevorzuge ich Flight PHP gegenüber Slim, aber wie bei jedem Framework, probieren Sie es aus und sehen Sie, ob es für Sie funktioniert.
Schließlich ist das richtige Framework ein Framework, das genau das tut, wofür Sie es benötigen.
Flug PHP
Schlanker Rahmen
Das obige ist der detaillierte Inhalt vonSlim- und Flight-PHP-Framework-Vergleich. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!