Lumen ist ein brandneues PHP-Mikro-Framework, das vom Autor des Laravel-Frameworks Taylor Otwell entwickelt wurde. Nicht betonen, obwohl Lumen Laravel nicht ersetzen soll. Tatsächlich ist die Idee hinter Lumen, dass es Ihre bestehenden oder zukünftigen Laravel-Anwendungen ergänzt.
Taylor Otwell entwickelte Lumen für einige sehr spezifische Zwecke, nämlich Mikrodienste und APIs. Kurz gesagt ist ein Microservice ein kleinerer, entkoppelter Prozess, der mit einer größeren Anwendung kommuniziert, z. unsere Laravel-Anwendung.
In diesem Artikel möchte ich auf die Unterschiede in Lumen eingehen, wann wir Lumen verwenden sollten und wie wir Lumen verwenden können. Ich erkläre auch, wie wir unsere Lumen-Anwendung nehmen und leicht zu einer Laravel-Anwendung mit vollem Stapel migrieren können. Es wird nicht viel Code geben, da Lumen dem von Laravel sehr ähnlich ist. Lass uns anfangen.
Dies wird höchstwahrscheinlich die erste Frage sein, die viele von Ihnen stellen werden. In Wirklichkeit ist mit Lumen abgesehen vom Leim nicht wirklich viel "neu". Lumen verwendet immer noch die meisten Illuminate-Komponenten, aus denen sich das Laravel-Gerüst zusammensetzt (es fehlt nur ein Paar). Betrachten Sie es als abgespeckte Laravel-Installation.
Ziel ist es, die Leistung zu maximieren, und um diese Leistungssteigerung zu erreichen, wurden einige Dinge geändert. Die wichtigsten davon sind folgende:
Konfig
Verzeichnis in einer Lumen-Installation. Stattdessen verwenden Sie die .env
Dateien, um die meisten Ihrer Anwendung zu konfigurieren.Hier gibt es einige Kompromisse. FastRoute ist eine sehr schnelle Implementierung, aber nicht so viele Funktionen wie der Symfony-Router. Wenn Sie das Unterdomänenrouting verwenden möchten, müssen Sie bei einer Laravel-Installation bleiben, die den Symfony-Router verwendet.
Der andere erwähnenswerte Kompromiss besteht darin, dass Sie zur feineren Kontrolle der Konfiguration bestimmter Komponenten Konfigurationsdateien innerhalb von ändern müssen Verkäufer / Laravel / Lumen-Rahmen
Verzeichnis. Der Großteil der Konfiguration kann über die vorgenommen werden .env
Dateien, aber einige weniger konfigurierte Dinge sind nicht direkt konfigurierbar.
Die Antwort hier wird davon abhängen, aber wahrscheinlich nicht. Wenn Sie eine Anwendung auf Laravel (4 oder 5) entwickeln oder entwickelt haben, müssen Sie wahrscheinlich nicht sofort auf Lumen umsteigen. Lumen kann zwar eine vollständige Webanwendung entwickeln, eignet sich jedoch besser für kleinere, entkoppelte Dienste und APIs.
Ich kann Ihnen nicht sagen, wann Sie ein Framework, das Ihnen zur Verfügung steht, verwenden können und wann nicht. Ich werde jedoch einige Empfehlungen geben, wann Sie die Verwendung von Lumen für einen Teil Ihres nächsten Projekts in Betracht ziehen könnten.
Nehmen wir an, Sie bauen eine große Web-Shop-Anwendung. Sie installieren also Laravel und arbeiten an einer monolithischen Anwendung. Nun, es ist nichts falsch mit diesem Ansatz, und Sie werden feststellen, dass es gut für Sie funktioniert. Wenn ja, mach weiter. Wenn Sie feststellen, dass Sie mit der Komplexität überfordert sind oder die Dinge ein wenig aus dem Ruder laufen, möchten Sie sie vielleicht in kleinere, handhabbarere Teile aufteilen.
Sie würden Lumen verwenden, um für jeden entkoppelten Dienst separate Anwendungen zu erstellen. Für unseren Shop können wir die Abrechnung, E-Mail-Benachrichtigungen, den Versand und die Nachverfolgung in separaten Anwendungen aufteilen. Jede dieser Anwendungen wäre eine eigenständige Lumen-Installation, und jede Anwendung würde nur eine bestimmte Aufgabe ausführen.
Damit unsere Hauptanwendung mit unseren entkoppelten Diensten kommunizieren kann, verwenden wir Warteschlangen und einen Dienst wie Amazon SQS. Wir können Warteschlangen verwenden, um Aufträge einfach in die Warteschlange zu stellen, und jeder Dienst wartet auf seine jeweiligen Aufträge und verarbeitet sie, während sie in die Warteschlange gestellt werden. Der Vorteil dieses Ansatzes ist, dass jeder Dienst unabhängig voneinander skaliert und implementiert werden kann.
Sie können Lumen auch verwenden, um eine API zu erstellen, die mit Hilfe eines HTTP-Clients wie Guzzle auch von Ihrer Hauptanwendung verwendet werden kann. Durch diese Entkopplung können Sie die Geschäftsseite Ihrer Anwendung skalieren und optimieren, ohne den Rest zu beeinträchtigen.
Inzwischen sollten Sie eine gute Vorstellung davon haben, ob Lumen der richtige Schritt für Sie ist oder nicht. Die Installation von Lumen ist so einfach wie die Installation von Laravel: eine einfache Komponist erstellen-Projekt
Befehl, oder Sie können das installieren Lumen
Befehl zum Erstellen neuer Projekte. Wir verwenden Composer einfach, um eine Neuinstallation zu starten.
Komponist Anlegenprojekt Laravel / Lumen LumenProject --prefer-dist
Composer wird alle Abhängigkeiten aufheben. Sie können Artisan verwenden, um die Anwendung schnell bereitzustellen, um einen Blick darauf zu werfen, oder Sie können eine Virtual Host- oder Homestead-Site einrichten. Auf jeden Fall, sobald Sie den Pfad zu Ihrer Lumen-Installation erreicht haben, sehen Sie die glänzende Spritzenseite, die Sie darüber informiert, dass Lumen gut ist.
Die Konfiguration erfolgt alles in der .env
Dateien, so möchten Sie entweder die .env.beispiel
Datei oder kopieren Sie den Inhalt in eine neue Datei.
Das verbleibende Bootstrapping, das Sie wissen möchten, befindet sich im bootstrap / app.php
Datei. Wenn Sie das verwenden .env
Konfiguration oben erwähnt, dann möchten Sie unkommentieren Dotenv :: load (__ DIR __. '/… /');
. Wenn Sie durch diese Datei scrollen, werden mehrere kommentierte Zeilen angezeigt, die Sie möglicherweise auskommentieren möchten. Es gibt das Laden von Fassaden, Eloquent, einige Middlewares und die Registrierung anderer Dienstleister.
Sie haben jetzt eine frisch installierte und konfigurierte Kopie von Lumen bereit, um etwas Erstaunliches zu bauen.
Möglicherweise erstellen Sie Ihre Lumen-Anwendung und alles läuft absolut in Ordnung. Bis zu einem schicksalhaften Tag, an dem Sie feststellen, dass Sie etwas benötigen, das nur das vollständige Laravel-Framework bietet. Stress aber nicht, es ist ein extrem schmerzfreies Upgrade. Hier sind die Schritte, die zu befolgen sind:
App
Verzeichnis. Beachten Sie, dass Sie möglicherweise einige Dinge vom L5 benötigen App
Verzeichnis, wie die Anbieter.Konfig
Verzeichnis.Dies sollte der größte Teil des zu kopierenden Dokuments sein, um Ihre Lumen-Anwendung zu Laravel zu migrieren. Natürlich funktioniert dies in beide Richtungen, sodass Sie eine Laravel-Anwendung problemlos nach Lumen migrieren können, wenn Sie feststellen, dass Sie nicht alles benötigen, was das Full-Stack-Framework bietet.
Zum Abschluss möchte ich nur darauf hinweisen, dass ich die Verwendung von Lumen in erster Linie für entkoppelte Dienste und APIs plädiere, die beabsichtigt sind. Das bedeutet nicht, dass Sie keine vollständige Anwendung auf Lumen erstellen können, weil Sie es können. Wenn Sie sich dafür entscheiden, ist das in Ordnung. Es gibt keine Regeln, die in eine Steintafel eingraviert sind und Ihnen sagen, was Sie für Ihre Projekte verwenden können und was nicht. Am Ende des Tages liegt die Entscheidung bei Ihnen. Wägen Sie Ihre Optionen ab, planen Sie Ihr Projekt, entscheiden Sie, was Sie benötigen, konsultieren Sie Ihr Team und treffen Sie Ihre endgültige Entscheidung.