Was ist Lumen? (Micro Laravel Framework)

Da es sich um ein Mikro-Framework handelt, kann man sagen, dass Lumen eine kleinere, schnellere und schlankere Version des Full-Stack-Webanwendungs-Frameworks ist. 

Hier, in diesem Artikel, diskutieren wir detailliert jeden Aspekt von Lumen als Mikro-Framework, seinen Installationsprozess, seine Konfiguration und seine Funktionen.

Einführung

Lumen ist ein neues Zeitalter und ein erstaunlich schnelles PHP-Mikroframework, das vom Schöpfer von Laravel, Taylor Otwell, mit dem Ziel entwickelt wurde, Microservices und APIs zu entwickeln, die große und komplexe Laravel-Anwendungen unterstützen können.

Microservices sind kleine und lose gekoppelte Komponenten, die eine Kernanwendung unterstützen und verbessern. Im Fall einer Microservice-Architektur haben Sie möglicherweise ein Szenario, in dem mehrere Lumen-Apps eine Laravel-Anwendung unterstützen.

Es ist ein „Mikro-Framework“, und deshalb kann man sagen, dass Lumen eine kleinere, schnellere und schlankere Version des Full-Stack-Webanwendungs-Frameworks ist. Lumen hat seine Basis von Laravel, und daher finden Sie in Lumenframework viele Komponenten ähnlich wie bei Laravel.

Lumenframework (im Beitrag auch abgekürzt mit LMF) eignet sich für Projekte oder Komponenten, die den Komfort und die Leistung von Laravel nutzen, aber auch die Geschwindigkeit ihrer Anwendung erhöhen möchten, und dafür sind sie sogar bereit, auf die Konfiguration und Flexibilität von Laravel zu verzichten.

Versionsverlauf

Lumenframework 5.0

Das allererste Lumen-Framework, d. h. Lumenframework 5.0, kam 2015 auf den Markt und basiert auf der Laravel 5.x-Serie von PHP-Komponenten.

LMF 5.0.4

Wenn Sie auf Lumenframework 5.0.4 aktualisieren, sollten Sie Änderungen an der Datei bootstrap/app.php vornehmen.

LMF 5.1.0

LMF 5.1.0 aktualisiert das Framework, um Laravel 5.1-Komponenten zu verwenden. Mit der Veröffentlichung dieser Version wurden Funktionen wie Event Broadcasting, Middleware-Parameter und Testverbesserungen Teil von Lumen.

LMF 5.2.0

LMF 5.2.0 aktualisiert das Framework, um Laravel 5.2-Komponenten zu verwenden. Darüber hinaus gab es einige wichtige Änderungen am Framework, wie unten aufgeführt:

Nur zustandslose APIs

Lumenframework 5.2 konzentrierte sich auf die Bereitstellung von zustandslosen JSON-APIs und daher wurde das Konzept von Sitzungen und Ansichten aus dieser Version entfernt. Wenn Sie diese Funktionen in Ihrer Anwendung haben möchten, sollten Sie Laravel Development Services nutzen.

Authentifizierung

Da Sitzungen nicht mehr Teil von Lumenframework 5.2 sind, muss die Authentifizierung zustandslos mithilfe von API-Token oder Headern erfolgen. Der Benutzer hat die vollständige Kontrolle über den Prozess im neuen AuthService Provider, der mit LMF 5.2 geliefert wird.

Testhelfer

Da es in LMF 5.2 kein Konzept einer Sitzung gibt, wurden alle Testhilfen bezüglich der Interaktionsform entfernt.

Installation

Eine Sache, die Sie bei der Installation von LMF beachten sollten, ist, dass es Composer verwendet, d. h. den Abhängigkeitsmanager für PHP, um seine Abhängigkeiten zu verwalten. Daher müssen Sie sicherstellen, dass auf Ihrem Computer ein Composer installiert ist, bevor Sie Lumenframework installieren.

Wenn Sie Probleme mit der Installation von LMF haben, können Sie Laravel Developer beauftragen. Er/Sie wird Ihnen in dieser Angelegenheit auf jeden Fall helfen.

Nun gibt es zwei Möglichkeiten, LMF zu installieren:

– Via Lumenframework Installer

– Via Composer Create-Project

Via Lumenframework Installer

Um mit der ersten Methode fortzufahren, müssen Sie den Lumenframework Installer mit dem Composer herunterladen. Verwenden Sie zu diesem Zweck den Befehl wie im folgenden Ausschnitt gezeigt:

Composer global erfordert „laravel/lumen-installer“

Stellen Sie immer sicher, dass Sie ~/.composer/vendor/bin in Ihrem PATH platzieren. Dadurch kann Ihr System die ausführbare Lumen-Datei finden.

Nachdem Sie das Lumen-Framework auf Ihrem Computer installiert haben, können Sie mit dem Befehl Lumen new eine Instanz von LMF in dem von Ihnen angegebenen Verzeichnis erstellen. Lumen new ABC erstellt beispielsweise ein Verzeichnis namens ABC, das eine Neuinstallation von LMF enthält, wobei alle Abhängigkeiten berücksichtigt werden.

Via Composer Create-Project

Eine andere Möglichkeit, LMF zu installieren, besteht darin, den Composer create-project-Befehl im Terminal auszuführen, wie im folgenden Ausschnitt gezeigt:

Composer create-project –prefer-dist laravel/lumen blog

Konfiguration

Die Konfigurationsoptionen befinden sich in einer .env-Datei.

Anwendungsschlüssel einrichten

Sobald sich das Lumenframework auf Ihrem Computer befindet, sollten Sie als erstes Ihren Anwendungsschlüssel auf eine zufällige Zeichenfolge einrichten. Im Allgemeinen ist diese Zeichenfolge 32 Zeichen lang. 

Der Schlüssel kann sich in der Umgebungsdatei (.env) befinden. Wenn Ihr Anwendungsschlüssel nicht aktiv ist, werden Ihre Daten nicht gesichert. Daher sollten Sie diesen Schritt bei der Arbeit mit LMF nie vergessen.

Hauptmerkmale von Lumenframework

Routing

Es bietet eine Routing-Funktion über Fast Route. Für diejenigen, die es nicht wissen, ist Fast Route eine Bibliothek, die eine schnelle Implementierung eines auf regulären Ausdrücken basierenden Routers bietet. Sie sollten alle Routen Ihrer App in der Datei „routes/web.php“ definieren. Die grundlegendste Routensyntax finden Sie im folgenden Snippet:

$app = neue LaravelLumenApplication(

realpath(__DIR__.’/../‘)

);

Die Lumenrouten akzeptieren einfach eine URI und einen Verschluss.

Verfügbare Router-Methoden

Im Folgenden finden Sie die Liste der Router-Methoden, die für das Lumen-Framework verwendet werden:

$app->get($uri, $callback);

$app->post($uri, $callback);

$app->put($uri, $callback);

$app->patch($uri, $callback);

$app->delete($uri, $callback);

$app->options($uri, $callback);

Authentifizierung

Wie wir bereits besprochen haben, unterstützt Lumenframework das Konzept der Sitzungen nicht. Daher authentifizieren sich alle Anfragen über den zustandslosen Mechanismus wie API-Token.

Authentifizierungsdienstanbieter

Der AuthServiceProvider befindet sich in der App/den Anbietern, die aus einem einzelnen Aufruf von Auth::viaRequest besteht. Diese Methode akzeptiert eine Schließung, die ins Spiel kommt, wenn eine Authentifizierungsanforderung eintrifft. Wenn für eine Anfrage keine Authentifizierung gefunden wird, gibt die Methode null zurück.

So funktioniert das:

Genehmigung

LMF bietet eine einfache Möglichkeit, die Autorisierungslogik zu organisieren und bietet auch eine einfache Möglichkeit, auf diese Ressourcen zuzugreifen. Die Autorisierung in LMF ist der im Laravel-Framework sehr ähnlich. Bei der Arbeit mit LMF müssen Sie jedoch einige Anpassungen vornehmen. Lassen Sie uns das also im Detail analysieren.

Caching

Der Caching-Mechanismus für LMF ist dem Laravel-Framework sehr ähnlich. Es gibt eine einzigartige API für verschiedene Caching-Systeme. Ihre Cache-Konfigurationsdatei befindet sich in der .env-Datei. Der Lumen-Cache-Treiber verwendet den gleichen Code wie Laravel und unterstützt auch beliebte Caching-Backends wie Memcached & Redis.

Die Verwendung von Redis mit LMF unterscheidet sich jedoch geringfügig von Laravel. In Lumenframework sollten Sie vor der Verwendung eines Redis-Cache das Paket illuminate/Redis (5.5.*) über Composer installieren.

Nachdem Sie diese Aufgabe ausgeführt haben, registrieren Sie IlluminateRedisRedisServiceProvider in Ihrer Bootstrap/app.php-Datei. Rufen Sie am Ende $app->configure(‚database‘); in der Datei bootstrap/app.php, um sicherzustellen, dass die Redis-Datenbankkonfiguration ordnungsgemäß geladen wird.

Verschlüsselung

Bevor Sie den Verschlüsseler von LMF verwenden, stellen Sie die Anwendungsschlüsseloption Ihrer .env-Datei immer auf eine zufällige 32-Zeichenfolge ein. Tatsächlich sind Authentifizierung und Autorisierung eine der Möglichkeiten, das Geschäft mit der App-Entwicklung von Laravel anzukurbeln.

Wie verschlüsseln?

Sie können einen Wert in Lumenframework mithilfe der Crypt-Fassade verschlüsseln. Alle Werte werden mit der OpenSSL- und AES-256-CBC-Verschlüsselung verschlüsselt. Darüber hinaus werden alle Werte mit einem MAC (Message Authentication Code) signiert, um jede Änderung zu erkennen.

Interessante Artikel:

Mehr Informationen zu Lumen hier

Mehr zu Lumen auf GitHub

Bilder: Freepik

Schreibe einen Kommentar