Veröffentlicht am
1.5.2026
Wie Taylor Otwell die PHP-Welt mit Laravel veränderte
Ich weiß noch, wie sich meine Eltern in den späten 2000er Jahren einen Internetanschluss ins Haus holten. Damals war das noch wirklich ein totales Neuland, obwohl das Internet selber in den frühen 70er Jahren vom US-Militär erfunden wurde - zumindest der Vorläufer davon. Über die Geschichte des Internets gibt es viele Infos im selbigen, doch hier soll es um das bekannte Framework namens Laravel gehen. Laravel wurde im Jahre 2011 von Taylor Otwell in der ersten Version veröffentlicht. Zwei Jahre zuvor erschien Windows 7 als Nachfolger von Vista und die Menschen erkannten nach und nach die zunehmenden Vorteile des Internets. Gamer konnten mit ihren Freunden aus aller Welt spielen und sich miteinader vernetzen. Man konnte ganz bequem von zu Hause aus seine Bankgeschäfte erledigen und im Internet bei ebay einkaufen. Unternehmen begannen nach und nach, ihre Internetpräsenzen immer weiter auszubauen und die Homepages wurden immer komplexer. Um aber die Geschichte von dem Webframework zu verstehen, müssen wir uns zunächst kurz die Geschichte der dahinter steckenden Programmiersprache PHP anschauen.
PHP - das Urgestein des Internets
Auch wenn heutige Webentwickler verstärkt auf Node.js & Co. setzen, bleibt PHP nach wie vor die meist verbreitetste Sprache im Web - auch wenn die Sprache für den Benutzer zunächst unsichtbar bleibt und nur dann sichtbar wird, wenn man in der Adressleiste des Browsers einen genaueren Blick hin wirft: Am Ende der URL taucht manchmal ein .php auf und man fragt sich schon, was es damit auf sich hat. PHP ist eine an C angelehnte Skriptsprache und wurde von dem Dänen Rasmus Lerdorf entwickelt. Skriptsprachen unterscheiden sich von Programmiersprachen wie C oder Java darin, dass das Programm ursprünglich “von oben nach unten” ausgeführt wird und es keine komplexen Abzweigungen über zahllose Dateien gibt. Die Sprache bietet viele bequeme Möglichkeiten zur Programmierung und hat sich stetig weiterentwickelt. Von einer einfachen Skriptsprache hat sie sich inzwischen zu einer durchaus mächtigen Sprache hochgemausert, mit der man auch Enterprise-Anwendungen entwickeln kann. Alle großen Content Management Systeme wie Wordpress oder TYPO3 aber auch Shopsysteme wie Shopware oder Lernmanagementsysteme wie Moodle wurden mit PHP entwickelt. Die Sprache wird dabei auf dem Webserver und nicht auf dem Client im Browser ausgeführt. Früher hatte die Sprache den Ruf gehabt, “unsaubere” Programmierung zuzulassen und eher “Quick and Dirty” zu sein, aber dem ist durch die stetige Weiterentwicklung nicht mehr so. Die erste Version von PHP erschien im Jahre 1995 und die neueste Version 8.5.5 wurde erst am 9. April 2026 veröffentlicht. PHP ist also nicht tot zu kriegen, auch wenn das sehr oft gerne behauptet wird 😉
Frameworks über Frameworks über Frameworks
Ganz anders als heute war die Webentwicklung in den 2000ern noch mit dem Wilden Westen vergleichbar. Es gab keine Standards, die Browser interpretierten CSS so, wie ihre Entwickler es für richtig hielten und JavaScript war ein ganz übles Pflaster, welches überhaupt nicht standardisiert war. Den Veteranen unter euch dürften die langen Optimierungen von Webseiten für den Safari und dem gefürchteten Internet Explorer noch immer in Erinnerung geblieben sein. Auch in der PHP-Welt gab es keine Standards und jeder entwickelte so, wie er Lust hatte. Doch mit der Zeit schlossen sich immer mehr PHP-Entwickler zusammen und begannen, einheitliche Codestandards zu entwickeln, die es auch noch heute unter dem Namen PSR gibt. Aber es wurden auch zunehmend Frameworks entwickelt, um die Arbeit für Entwickler zu erleichtern. Das bekannteste Framework dürfte hierbei Symfony von Fabien Potencier aus dem Jahre 2005 sein, welches stark an das Spring-Framework aus der Java Welt angelehnt war. Im gleichen Jahr erschien auch das an Ruby on Rails angelehnte CakePHP von dem polnischen Entwickler Michal Tatarynowicz. Laravel hingegen wurde erst sechs Jahre später entwickelt und nutzt unter der Haube Komponenten aus Symfony. Hier passierte auch im Frontend sehr viel: Twitter Bootstrap erschien als CSS-Framework und löste langsam die Yahoo Interface Library (YUI) ab und jQuery - das meistgenutzte Framework in JavaScript - verbreitete sich immer weiter. Man entdeckte nach und nach das Potential der Webentwicklung und begann dann, auch Webanwendungen zu entwickeln. Der Benutzer konnte diese bequem in seinem Browser ausführen und musste dabei nicht mehr eine ganze Desktop-Anwendung installieren.
Laravel - ein MVC Framework
Kommen wir nun zu Laravel. Das Framework folgt dem so genannten MVC-Muster. MVC steht für Model, View und Controller und beschreibt ein so genanntes Software Design Pattern, also ein Entwurfsmuster zur Softwareentwicklung. Im Kern sieht dieses Muster so aus:
- Das Model ist die Blaupause des Objektes. Es entählt die Datenstruktur mitsamt ihren Attributen und Methoden.
- Die View beschreibt die Ansicht, wie dem Benutzer das Model bzw. die Daten präsentiert werden sollen.
- Der Controller übernimmt die Logik, wann welcher Benutzer welche Daten sehen soll.
So weit, so gut. Im Laufe der Zeit wurde dieses Muster natürlich immer weiter verfeinert, sodass nun so genannte (Micro)Services dazugekommen sind. Der Controller ruft dabei nur noch die entsprechenden Services auf und die Anwendung wird dadurch entkoppelter und auch skalierbarer. Ein weiterer großer Vorteil von Laravel ist, dass vieles schon von Haus aus dabei ist - beispielsweise Authentifierung, Datenbankzugriffe, Template-Engines, Routing, Middlewares, Task Scheduling usw. Die Lernkurve ist hier durchaus steil und man hat schnell das Gefühl, dass das Framework “allmächtig” ist. Daher ist es besonders bei schnellen Projekten und Agenturen sehr beliebt. Zur Veranschaulichung möchte ich das MVC an einem kleinen Beispiel demonstrieren:
Das Model
Ein Model für das Mitglied eines Tennisvereins könnte in Laravel z.B. so aussehen:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Casts\Attribute;
use Carbon\Carbon;
class Member extends Model
{
protected $fillable = [
'first_name',
'last_name',
'email',
'birthday',
'handicap',
'is_active'
];
protected $casts = [
'first_name' => 'string',
'last_name' => 'string',
'email' => 'string'
'birthday' => 'date',
'handicap' => 'integer',
'is_active' => 'boolean',
];
public function getFullNameAttribute(): string
{
return "{$this->first_name} {$this->last_name}";
}
public function getAgeAttribute(): int
{
return $this->birthday->age;
}
}
Anhand der Struktur erkennt man, dass man auch Datentypen festlegen kann. Das geschieht über die Variable $casts. Die Funktionen in Zeile 42 und 50 geben jedoch die primitiven Datentypen string und int zurück, auch wenn diese in PHP natürlich nicht so umfangreich und mächtig sind wie in Java. Laravel nutzt als Lösung sehr häufig (statische) Hilfsklassen wie beispielsweise Carbon, um mit Datumsobjekten zu arbeiten.
Die View
Laravel verwendet zum Rendern der Views die Template-Engine Blade. Diese werden auf dem Server gerendert und dann dem Nutzer fertig ausgeliefert . Das nennt sich Server-side rendering, kurz: SSR. So könnte die Detailansicht von der View des oben definierten Models aussehen:
@extends('layouts.app')
@section('title', 'Mitgliedsprofil: ' . $member->full_name)
@section('content')
<div class="max-w-md mx-auto bg-white shadow-lg rounded-lg overflow-hidden">
<div class="bg-blue-600 p-4">
<h1 class="text-white text-2xl font-bold">Tennisclub Grün-Weiß</h1>
</div>
<div class="p-6">
<h2 class="text-xl font-semibold mb-4 text-gray-800">Mitgliedsprofil</h2>
<div class="space-y-3">
<p><strong>Name:</strong> {{ $member->full_name }}</p>
<p><strong>E-Mail:</strong> {{ $member->email }}</p>
<p><strong>Alter:</strong> {{ $member->age }} Jahre</p>
<p><strong>Handicap:</strong> {{ $member->handicap }}</p>
<p>
<strong>Status:</strong>
@if($member->is_active)
<span class="text-green-600 font-bold">Aktiv</span>
@else
<span class="text-red-600 font-bold">Inaktiv</span>
@endif
</p>
</div>
<div class="mt-6 border-t pt-4 text-sm text-gray-500">
Mitglied seit: {{ $member->created_at->format('d.m.Y') }}
</div>
</div>
</div>
@endsection
Mithilfe der @if-Direktiven kann schnell in der View kontrolliert werden, welche Daten angzeigt werden sollen. Mit @php kann man sich sogar direkten PHP-Code in die View holen, allerdings sollte man das wen möglich vermeiden. Die beiden Direktiven @extends und @section legen das genutzte Layout fest, wie bei allen modernen Frontend-Frameworks auch.
Der Controller
Für dieses kleine Beispiel bleibt der Controller sehr einfach:
namespace App\Http\Controllers;
use App\Models\Member;
use Illuminate\View\View;
class MemberController extends Controller
{
public function show(int $id): View
{
$member = Member::findOrFail($id);
return view('members.show', compact('member'));
}
}
In Zeile 10 wird das entsprechende Mitglied anhand der ID aus der Datenbank geladen und in der darauffolgenden Zeile an der entsprechenden View zurückgegeben. Dieses kleine Beispiel war nur eine einfache Demontration des MVC-Patterns. Große Projekte von Anwendungen mit vielen Funktionen und Shopmöglichkeiten haben natürlich deutlich komplexere Models, Views und Controller mitsamt Services.
Laravels großes Ökosystem
Über die Jahre hinweg ist das Framework unheimlich gewachsen und es ist mittlerweile ein ganzes Ökosystem um Laravel herum entstanden, womit man es um Funktionen erweitern kann. Natürlich kann ich nicht auf alle Erweiterugen eingehen, aber ich beschränke mich hierbei auf die wichtigsten:
- Livewire
Interaktive Komponenten, wie man sie aus Vue o.ä. kennt, werden komplett in PHP geschrieben - Intertia.js
Laravel fungiert als reines Backend, während Vue oder React direkt in Laravel eingebunden und mit Intertia.js verbunden werden können - Laravel Debugbar
Sie fügt eine kleine Leiste unten am Rand mit nützlichen Debuginfos hinzu - Laravel Passport
Ein vollständiger OAuth2-Server, um den Login mit anderen Diensten wie Google o.ä. zu ermöglichen - Laravel Nova
Ein kostenpflichtiges Admin-Panel direkt von den Laravel-Entwicklern für CRUD Aufgaben der jeweiligen Models
Fazit
Taylor Otwell hat mithilfe von Laravel die PHP-Welt verändert und es Entwicklern deutlich einfacher gemacht, Webanwendungen zu entwickeln. Die Dokumentation ist sehr übersichtlich und man kann sich in dem Framework sehr schnell hereinfuchsen. Neben Symfony dürfte Laravel der zweite Platzhirsch bei den PHP-Frameworks sein. Allerdings hat Laravel nicht nur Vorteile, denn manche Entwickler wünschen sich eine strenge Modularisierung ihrer Anwendung und mögen keine Allrounder. Andere aus dem Enterprise-Umfeld brauchen widerrum eine sehr strenge Unterstützung von Datentypen. Schaut euch das Framework am besten selber in aller Ruhe an. Überlegt dann, ob es mit eurem Usecase passt und schaut auf der Homepage oder der Doku von Laravel vorbei, um euch mehr zu informieren. Ich persönlich nutze es für kleinere Projekte oder Mockups.