In sozialen Medien fragen neue PHP-Entwickler oft: „Welches Framework soll ich für mein Projekt verwenden?“ und im Allgemeinen werden „Laravel“ oder „Symfony“ als Antworten gegeben.
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äre die Verwendung von Laravel oder Symfony übertrieben, die Website zu konstruieren, 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 davon 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.
Flight PHPs Skelettprojekt 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 und erforderten nur minimale zusätzliche Konfiguration.
Anstatt die Skelette zu verwenden, habe ich beschlossen, die Websites durch die Erstellung meines eigenen Setups zu erstellen. 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 man sie ohne unnötigen Overhead so erstellen kann, dass sie genau das tun, was man braucht, und bei Bedarf Funktionen und Bibliotheken hinzufügen kann.
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 letztendlich 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 auch auf diese Weise 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 dies tun und optional kann ein aktiver Datensatz zum Projekt für die 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 Sie Lösungen von Drittanbietern verwenden oder Ihre eigenen erstellen 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 mit FETCH. Slim verfügt über eine Methode getParsedBody, um aus der POST-Anfrage ein Datenarray zu erstellen.
Um es jedoch verwenden zu können, muss 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 ein- und ausgeschaltet werden, anstatt über die Middleware-Aktivierung.
Geschwindigkeitstests
Benchmarks zufolge liefert der Vergleich der beiden interessante Ergebnisse: 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 Antwortzeiten für beide, aber mit Ausreißerspitzen in Slim, die beim Testen von Flight PHP nicht auftraten, und Flight PHP war im Allgemeinen besser 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 sollten Sie es ausprobieren und sehen, ob es für Sie funktioniert.
Das richtige Framework ist schließlich ein Framework, das genau das tut, wofür Sie es benötigen.
Flug PHP
Schlankes Framework
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3