Laravel: das beste Framework da draußen?
In der Entwicklergemeinschaft ist Laravel eines der am häufigsten diskutierten und verwendeten Backend-Frameworks. Wir bei Dotbite verwenden Laravel in Projekten wie timebite und LEAD Horizon. Es ist zu unserem Standardwerkzeug geworden, deshalb haben wir beschlossen, unsere Lieblingsvorteile des PHP-Frameworks aufzuschreiben. Diese Liste von Funktionen und Vorteilen hilft dir hoffentlich bei der Entscheidung, ob Laravel das richtige Framework für dein nächstes Projekt ist, oder sie gibt dir einfach einen kurzen Einblick in unsere Arbeitsweise und warum wir tun, was wir tun.
Lara-was?
Bevor wir uns mit den Vorteilen von Laravel beschäftigen, wollen wir erst einmal erklären, was Laravel ist. Dieser Abschnitt richtet sich an alle, die mit dem Entwicklerjargon und den vielen technischen Kenntnissen, die man braucht, um Laravel zu verstehen, nicht vertraut sind. Wenn du ein Entwickler bist und dich bereits mit Laravel auskennst, kannst du zum nächsten Abschnitt übergehen, in dem wir erklären, warum wir Laravel so gerne benutzen.
Bei der Erstellung einer Website oder Webanwendung kann der Prozess in zwei Hauptprojekte unterteilt werden: Frontend und Backend oder: Client und Server. Während Ersteres das Design und das allgemeine Aussehen der Website betrifft, d. h. alles, was der Endnutzer beim Surfen auf der Website sieht, geht es bei Letzterem um den technischen Hintergrund einer Website oder Webanwendung. Die Kernfunktionen von Laravel drehen sich darum, ein sauberes, sicheres und gesundes Backend zu entwickeln und gleichzeitig die Werkzeuge bereitzustellen, um ein Frontend zu erstellen, das mit dem Backend zusammenarbeitet.
Eine Website oder eine Webanwendung von Grund auf zu entwickeln, kann Hunderte von Stunden dauern. An einem bestimmten Punkt kommen Frameworks zum Einsatz, um Zeit im Entwicklungsprozess zu sparen. Frameworks sind Sammlungen von Modulen, Paketen und sogenannten Design Patterns, die Entwicklern einen einfachen und standardisierten Weg bieten, ihre Projekte darauf aufzubauen. Du musst nicht für jedes Projekt das Rad neu erfinden und viele Stunden damit verbringen, den Code für häufig verwendete Funktionen zu schreiben, z. B. für das automatische Versenden von E-Mails, das Speichern von Dateien, das Verschlüsseln von Daten oder das Überprüfen von Benutzerdaten auf Sicherheit. Um Zeit zu sparen, werden die grundlegenden Codes für diese Funktionen in einem Framework gesammelt. Ein solches Framework ist Laravel.
Laravel ist ein quelloffenes (d.h. für jeden frei zugängliches) PHP-Backend-Framework, mit dem dynamische Websites und Webanwendungen entwickelt werden können.
Einfach wie das ABC
Ok, vielleicht nicht ganz so einfach. Aber der Entwicklungsprozess ist vergleichsweise logisch, weil das Framework strikt dem Model-View-Controller (MVC)-Muster folgt. Das heißt, Daten, Präsentation und Logik sind getrennte Einheiten und können einzeln geändert werden. Das MVC-Designmuster bedeutet, dass die Architektur der Software sehr logisch aufgebaut ist. Deshalb können neue Entwicklerinnen und Entwickler schnell in ein Projekt einsteigen, ohne dass sie sich mit einem Code-Chaos konfrontiert sehen, das nur ihr Schöpfer verstehen kann.
Ein weiterer Aspekt, der den Entwicklungsprozess mit Laravel drastisch erleichtert, ist die umfangreiche Dokumentation. Sie bietet Entwicklern einen Leitfaden über den Zweck jedes Tools innerhalb des Frameworks und wie es zu verwenden ist. Wir schätzen die Dokumentation von Laravel besonders, weil sie sehr umfangreich ist, hervorragende Beispiele bietet und mit jeder neuen Version aktualisiert wird, während ältere Versionen weiterhin unterstützt werden.
Inklusive Batterien
Einer der Hauptvorteile, die wir bei der Arbeit mit Laravel sehen, ist sein umfangreiches Ökosystem. Egal, an welchem Projekt du arbeitest, Laravel hat höchstwahrscheinlich bereits die notwendigen Tools und Pakete, die du brauchst. Noch besser ist, dass die meisten von ihnen von Laravel selbst entwickelt werden, sodass du nicht auf Tools von Drittanbietern angewiesen bist, sondern sie direkt von der Quelle beziehen kannst. So könntest du zum Beispiel Laravel Scout für die Volltextsuche verwenden und es mit Socialite für die Anmeldung bei One-Authenticator-Diensten wie Facebook oder Google kombinieren.
Einige unserer Lieblingstools in diesem Zusammenhang sind die vorgefertigten Authentifizierungsdienste, Forge und Laravel Vapor. Mit Authentifizierungsdiensten ist es ein Kinderspiel, Benutzersitzungen zu verwalten. Diese können erweitert werden, um Benutzerrollen zu erstellen und Berechtigungen zu verwalten. Die Benutzerdienste werden in einem Singleton-Muster ausgeführt, um so effizient wie möglich zu arbeiten und die Datenbankinteraktionen pro Anfrage auf ein Minimum zu reduzieren. Forge erleichtert die Bereitstellung und Verwaltung von Daten auf mehreren Servern, was uns bei unserem Projekt mit LEAD Horizon sehr gelegen kam. Und schließlich verwenden wir Laravel Vapor als serverlose Plattform für die Laravel-Anwendung. So können wir Projekte skalieren, ohne die zugrunde liegende Infrastruktur selbst zu verwalten. All das spart uns wertvolle Zeit.
Die Artisan Console ermöglicht es uns, sehr effizient zu arbeiten. Einfach ausgedrückt handelt es sich um eine Befehlszeilenschnittstelle, die viele nützliche Tastenkombinationen enthält. Da sie jederzeit leicht zugänglich ist, vereinfacht die Artisan-Konsole außerdem Nebenaufgaben wie die Migration von Datenbanken oder die Erstellung von Modellen erheblich. Neben diesen bereits eingebauten Befehlen kannst du die Artisan-Konsole auch mit selbst erstellten Befehlen erweitern. Einige unserer Favoriten sind der Befehl project setup, der die Datenbank in einen einsatzbereiten Zustand bringt und alle benötigten Daten setzt, oder der Befehl local export, der die Lokalisierungsdateien für die Verwendung in JavaScript vorbereitet und uns wertvolle Zeit spart.
Ein weiterer Grund, warum wir Laravel sehr schätzen, ist Eloquent, "ein objektrelationaler Mapper (ORM), der die Interaktion mit deiner Datenbank zum Vergnügen macht." Wenn du dieses Modul verwendest, werden alle Daten in der Datenbank einer Klasse zugeordnet, die eine Abstraktion des Codes darstellt. Die Datenbank kann dann sehr einfach geändert werden, da das Modul eine klare und logische Art der Interaktion mit der Datenbank durch Klassen einführt, anstatt sich ständig mit MySQL-Abfragen herumzuschlagen. Auf diese Weise spart Eloquent, und du ahnst es vielleicht schon, wertvolle Zeit.
Integrationen
Wie wir bereits erwähnt haben, ist Laravel hauptsächlich ein Backend-Framework. Entwickler können mit den Blade-Vorlagen von Laravel, HTML und CSS ein einfaches Frontend erstellen. Für kompliziertere Anforderungen sind jedoch Integrationen zu Frontend-Frameworks unerlässlich. Laravel bietet hier einen großen Vorteil, denn es ermöglicht eine nahtlose Integration in JavaScript-Frontend-Frameworks wie Vue.js, das wir gerne verwenden.
Neben der Integration von Frontend-Frameworks lässt sich Laravel auch nahtlos in verschiedene Datenspeichersysteme und Cloud-Speicherdienste wie Amazon S3 integrieren. Du kannst dir diese Cloud-Speicherdienste wie Dropbox für Entwickler vorstellen. Alle notwendigen Daten werden nicht auf einem einzelnen Server irgendwo gespeichert, sondern in der Cloud, was bedeutet, dass die Daten mit einem Klick von überall auf der Welt zugänglich sind. Außerdem bietet Laravel auch Integrationen zu Zwischenspeichern, die im Handumdrehen eingerichtet sind. Dieser Zwischenspeicher (z. B. Redis oder Memcached) ermöglicht es uns, Daten direkt im Arbeitsspeicher zu speichern, wodurch wir Daten, die hochverfügbar sein müssen, zwischenlagern können.
Laravel bietet auch einfach zu bedienende Integrationen zu plattformübergreifenden Messaging-Systemen wie Amazon SES. Damit können Entwickler den Versand von E-Mails und anderen Nachrichten an Nutzer automatisieren. Wir finden, dass die Priorisierungsfunktion das Tool besonders nützlich macht. Sie ermöglicht es, Nachrichten mit niedrigerer Priorität in eine Warteschlange zu stellen und Nachrichten mit höherer Priorität zuerst zu versenden, was sehr praktisch ist, wenn eine große Anzahl von Nachrichten versendet wird.
Wie Laravel timebite verändert hat
Nachdem wir bei einigen Projekten mit Laravel gearbeitet und seine Vorteile erkannt hatten, beschlossen wir, es für die meisten neuen Projekte zu verwenden und stellten sogar unser ältestes Projekt, die Schülerplattform timebite, komplett auf Laravel um. Neben der bereits erwähnten Benutzerfreundlichkeit des Frameworks konnten wir die neueste Version der Plattform in viel kürzerer Zeit fertigstellen. Der Hauptgrund, warum wir das Framework für timebite verwendet haben, war jedoch die sofort einsatzbereite Datensicherheitsverwaltung, die die Daten unserer Nutzerinnen und Nutzer sicher speichert und gleichzeitig die Aufgaben der Datensicherheitsverwaltung für uns vereinfacht. Außerdem gefällt uns die große Anzahl an Laravel-Paketen und nahtlosen Integrationen. Mit Spatie können wir zum Beispiel ganz einfach ein komplexes Rollensystem mit verschiedenen Berechtigungsstufen verwalten.
Höre auf dein Bauchgefühl
Wenn du diesen Blogartikel liest, um zu entscheiden, ob Laravel das richtige Framework für dein nächstes Projekt ist, möchten wir dir einen Rat geben: Verwende das Framework, mit dem du dich am wohlsten fühlst. Wenn es etwas gibt, das du aus diesem Blogartikel mitnimmst, dann ist es das.
Use whatever framework you feel most comfortable with!
Denn selbst wenn du das beste Framework verwendest, das es gibt (und das gibt es nicht), wirst du das Potenzial des Frameworks und dein eigenes nicht voll ausschöpfen können, wenn du dich im Umgang damit nicht wohlfühlst und keinen Spaß an der Arbeit hast.
Ready to connect the dots?
Hi, ich bin Emir, CEO und Mitgründer von Dotbite.
Du hast eine interessante Idee für ein digitales Projekt und suchst einen Sparringspartner, der die Herausforderung gemeinsam mit dir angeht?
Dann bist du bei uns genau richtig.