Website-Icon Kreativdenker GmbH

Was ist Laravel? Alles rund um das PHP-Webframework

Laravel ist ein Webframework für die Programmiersprache PHP. Trotz seines jungen Alters ist es heute das meist genutzte PHP-Framework. Das populärste Framework wurde 2011 von Taylor Otwell entwickelt. Die neueste Version, Laravel 8, erschien im September 2020.

Die Entstehung von Laravel

Taylor Otwell entwickelte Laravel auf Basis eines bereits bestehenden Webframeworks: Symfony. Intention dieser Neuentwicklung war es, die Funktionalitäten eines anderen PHP-Frameworks namens CodeIgniter zu erweitern. Im Gegensatz zu CodeIgniter unterstützte Laravel schon in der ersten Version (Laravel 1) Features wie Autorisierung und Authentifizierung.

Otwell verbrachte viel Zeit damit, sein Framework gut zu dokumentieren. Laravel gilt als eins der best dokumentiertesten Frameworks von PHP, was auch maßgeblich zu seiner Beliebtheit beitrug.

Lizenzierung und Entwicklung

Der Quellcode des Frameworks liegt auf GitHub und wird unter der MIT-Lizenz vertrieben, somit ist das Framework Open Source und kann unter jeder beliebigen Lizenz vertrieben werden. Dies ermöglicht die Verwendung in Nicht-Quelloffener Software.

Mit der Laravel Version 4 kamen erste große Änderungen zum Webframework dazu. Im Fokus lag vor allem eine gute Integration der PHPUnit Tests. Zudem sollte generell eine bessere Testbarkeit der Laravel-Funktionen hinzugefügt werden, um die Funktionalität sicherzustellen. Und um auch Paketinstallationen zu vereinfachen, begann man Paket-Management-Systeme zu unterstützen. Ganz besonders wurde hier auf das anwendungsorientierte Paket-Management-System Composer gesetzt, welches im Bereich der PHP-Entwicklung als Standard gilt.

Laravel in der Webentwicklung

Wie bereits zuvor aufgegriffen, handelt es sich bei Laravel um ein PHP-Framework. Frameworks zeichnen sich durch eine Reihe nützlicher und anwendungsspezifischer Funktionen aus, die gebündelt zur Verfügung stehen. Diese Bündelung nennt sich, in der Welt der Programmierung, Bibliothek. Das Ziel des Webframeworks Laravel ist es, die Webentwicklung unter PHP zu vereinfachen. So müssen bestimmte Module nicht selbst entwickelt werden, sondern sind, zu jeder Zeit zugänglich und verwendbar. Des Weiteren gibt Laravel eine Projektstruktur und ein Basissystem vor. Beispielsweise bietet Laravel Funktionen zur einfachen Datenübertragung in der Vermittlungstechnik, dem Routing. Aber auch Funktionen für Datenbank-Verbindungen (ORM) und Job-Queues, sowie eine Architekturvorgabe namens MVC (Model-View-Controller) werden angeboten.

Laravel lässt sich hervorragend mit anderer Software kombinieren. So lassen sich die web-spezifische Bibliothek zur Verfeinerung und Programmierung von WordPress-Webseiten nutzen.

WordPress ist ein Content-Management-System, welches auf der Basis von PHP entwickelt wurde. Die grafische Oberfläche lässt eine sehr einfache Benutzung zu. Auch weniger technisch versierte Personen können mit WordPress eine Webseite innerhalb kürzester Zeit aufsetzen, ohne dafür selbst programmieren zu müssen. Jedoch hat die Anwendung einige Grenzen in der Gestaltung einer Webseite, die sich nur durch Programmierung lösen lassen.

Hier kann PHP auch in Kombination mit Laravel Abhilfe schaffen. Gerade weil das Framework für die Entwicklung von Webseiten erstellt wurde, bietet es eine Vielzahl nützlicher Komponenten an, aus denen man schöpfen kann. Die Nutzung von Laravel im WordPress-Universum bietet sich an, wenn spezifische und individuelle Lösungen gefordert sind. Dies trifft besonders auf die Entwicklung für Businesskunden zu.

Features von Laravel

Das MVC-Pattern

Hierbei handelt es sich um ein Architekturmuster zu logischen Darstellung des Programmcodes. Dies erfolgt durch das Model-View-Controller Muster, daher auch der Name MVC. Der Programmcode wird logisch in die Daten- (Model), Geschäfts- (Controller) und Anzeigelogik (View) unterteilt. Das hat den Vorteil der Integrität der Daten und klaren Trennung der Zugriffsmöglichkeiten. Laravel bietet für jeden dieser Bereiche fertige Module. So gibt es Model-Klassen, welche Verbindungen zu Datenbanken, Beziehungen und Attributsverwaltung zulassen. Die Controller lassen sich in das Routing integrieren und bieten Validierung und Authentifizierung. Auf View-Ebene bietet Laravel mit der eigenen Template-Sprache Blade viele nützliche Vereinfachungen.

Routing

PHP bietet bereits eine leicht lesbare Umsetzung des URL Routings. Durch den Einsatz von Laravel wird das Routing nun auch logisch vom restlichen Programmcode getrennt und bietet zusätzlich eine noch bessere Lesbarkeit, sowie unzählige Konfigurationsmöglichkeiten. Darunter auch die Verwendung sogenannter Middlewares.

Zu beachten ist, dass das MVC-Pattern hierbei zwar empfohlen wird, aber nicht zwingend notwendig ist. Für kleinere Seiten gibt es beispielsweise einfache Möglichkeiten, den Model- und Controller-Schritt zu überspringen:

Route::get('/', function () {
   return view('welcome');
});

Job Queues

Für komplexere Web-Anwendungen sind oft aufwendigere Berechnungen notwendig, die asynchron stattfinden können. Um Seitenaufrufe weiterhin performant zu halten, bietet Laravel eine fertige Job Queue an, welche einfach verwendet werden kann. So können die Entwickler Jobs schreiben, welche mit unterschiedlichsten Parametern von Queue-Workern abgearbeitet werden.

Sicherheit

Mithilfe von Laravel lässt sich Sicherheit kinderleicht integrieren. Das Framework bietet Hashfunktionen und die Salt-Kryptografie für Passwörter. So wird verhindert, dass Passwörter im Klartext gespeichert werden. Außerdem lassen sich mit Laravel SQL-Injektionen vermeiden. Die SQL-Funktionen sind bereits so gestaltet, dass diese Angriffsmöglichkeit standardmäßig unterbunden wird. Auch CSRF-Attacken und XSS-Injektionen können mit Bordmitteln einfach verhindert werden. Verschlüsselung bei etwa Sessions oder Cookies ist ebenfalls standardmäßig integriert und aktiviert.

Datenbankverbindungen

Mit Laravel ist es möglich, mehrere Datenbankverbindungen aufzubauen. Dies ist vor allem nützlich, wenn das System Daten von vielen verschiedenen Datenbanken bezieht und auch dann, wenn die verwendeten Datenbanksysteme verschiedene Typen aufweisen. Ein Beispiel wäre hierfür die Verwendung von MariaDB oder MySQL auf dem Produktionssystem, und einer In-Memory sqlite-Datenbank im Testsystem.

Tests

Wie bereits zuvor erwähnt, war es Taylor Otwell ungemein wichtig, dass Laravel das Testen des eigenen Codes einfach gestaltet und sehr gut beherrscht. Daher bietet Laravel zwei Arten des Testens an: Unit-Test und Feature-Tests. Mit Unit-Tests lassen sich einzelne Module durch Erweiterung der PHPUnit-Funktionalität einfach testen. Feature-Tests hingegen testen den gesamten Lebenszyklus einer Abfrage und simulieren einen vollständigen Zugriff durch etwa einen Besucher. Auch hier bietet Laravel eine fertige Testsuite, welche adaptiert werden kann.

Laravel Ecosystem

Was versteht man unter dem Laravel Ecosystem? Es handelt sich grob gesagt um ein Framework für das Framework: um die Nutzung Laravels noch einfacher und leichter zu gestalten, wurden verschiedenste Pakete und Anwendungen zusammengefasst.

So finden sich beispielsweise Anwendungen wie Vapor, Forge oder Envoyer in diesem Ecosystem wieder. Bei Vapor handelt es sich um eine Serverless Plattform um die eigene Laravel Anwendung schnell und einfach auf Amazon Web Services deployen zu können. Forge und Envoyer bieten Komfort beim Deployment auf “klassische” Server. Außerdem gibt es zahlreiche Erweiterungen oder sogenanntes “Boilerplate”, also vorgefertigte Programmabschnitte, auf die in bestimmten Fällen aufgebaut werden kann.

Laravel: Eine Zusammenfassung

Das Web-Framework bietet alle wichtigen Funktionen, um nicht nur schnell und einfach, sondern auch sichere Webseiten zu bauen. Mit zahllosen Testmöglichkeiten und durch die Abwendung gängiger Sicherheitsangriffe, steht Laravel seit Jahren an der Spitze der PHP-Frameworks. Durch unkompliziertes Routing, bequemen Job Queues und der starken Unterstützung für das Software-Architekturmodel MVC, ist das Framework hervorragend für die Webentwicklung geeignet.

Die mobile Version verlassen