Überblick
Dieser Abschnitt behandelt Themen, die über die offizielle Dokumentation hinausgehen: die interne Implementierung von Laravel sowie fortgeschrittene Themen, die speziell auf die Paketentwicklung ausgerichtet sind. Anhand des Quellcodes werden praktische Entwurfsmuster und Erweiterungsmöglichkeiten erläutert.Paketentwicklung
Laravel-Paketentwicklung
Von den Grundlagen der Paketentwicklung rund um Service Provider bis hin zur Veröffentlichung von Konfigurationen, Views und Migrationen.
Laravel-Pakete mit Orchestra Testbench testen
Bauen Sie mit Orchestra Testbench eine Testumgebung für Ihre Pakete auf und prüfen Sie Service Provider, Facades und Datenbank.
Paketentwicklung mit Testbench Workbench
Erstellen Sie eine praxisnahe Prüfumgebung und bauen Sie einen Entwicklungs-Workflow mit Routen, Migrationen und Service-Startup auf.
Versionskompatibilität für Pakete verwalten
Wartungsstrategien für Pakete bei Laravel- und PHP-Upgrades sowie die Konfiguration einer Test-Matrix in GitHub Actions.
GeneratorCommand — Eigene make:-Befehle implementieren
Erfahren Sie, wie Sie eigene
make:-Befehle für Ihr Paket durch Ableiten von GeneratorCommand implementieren.Paketkonfiguration zusammenführen und cachen
Verstehen Sie den Unterschied zwischen flachem Zusammenführen und rekursivem Ersetzen, und pflegen Sie die Konfiguration mit Blick auf veröffentlichte Dateien und den Konfigurations-Cache.
Paket-Migrationen veröffentlichen und aktualisieren
Der Unterschied zwischen Veröffentlichen und direktem Laden, die Risiken von Zeitstempeländerungen und erneutem Veröffentlichen sowie Schemaänderungen für bestehende Nutzer.
Paket-Views überschreiben und aktualisieren
Die Suchreihenfolge von Views, die Kompatibilität veröffentlichter Templates und ein Update-Ablauf, der den Blade-Cache berücksichtigt.
Paket-Routen registrieren und cachen
Die Trennung von Middleware und Namen sowie der Zusammenhang zwischen Konfigurationsänderungen und dem Neuerstellen des Route-Caches.
Paket-Caches in optimize integrieren
Erläutert Registrierungsschlüssel eigener Tasks, Ausschlüsse, Ausführungsreihenfolge und den Umgang mit Fehlern.
Öffentliche Paket-Assets veröffentlichen und aktualisieren
Erläutert die Auslieferung von JavaScript und CSS, den Auswahlbereich von Tags, das Überschreiben und erneutes Veröffentlichen bei Composer-Updates.
Paketübersetzungen überschreiben und aktualisieren
Erläutert das teilweise Überschreiben von PHP-Übersetzungen, gemeinsam genutzte Schlüssel bei JSON-Übersetzungen und Aktualisierungen, die veröffentlichte Übersetzungen nicht beschädigen.
Hooks nach der Service-Auflösung in Paketen
Erläutert verzögerte Konfiguration mit callAfterResolving(), die Anwendung auf bereits aufgelöste Services und Hinweise zur Idempotenz.
Event-Listener in Paketen registrieren und cachen
Erläutert den Unterschied zwischen expliziter Registrierung und automatischer Erkennung, das Vermeiden von Doppelregistrierungen, den Umfang von event:cache und die Prüfung bei Updates.
Lebenszyklus-Design für Paket-Services
Erläutert die interne Implementierung von scoped, die von Singletons gehaltenen Abhängigkeiten und die Trennung von Zustand in langlebigen Workern.
Blade-Erweiterungen und Kompilierungscache in Paketen
Erläutert den Ausführungszeitpunkt eigener Direktiven und Bedingungen sowie die Cache-Verwaltung bei Updates.
Interna des Frameworks
Anwendungsstruktur ab Laravel 11
Das gesamte Slim Application Skeleton sowie die interne Implementierung von Application::configure() bis zum ApplicationBuilder.
Macroable-Trait
Funktionsweise und Anwendungsmuster des Macroable-Traits, mit dem Sie bestehenden Laravel-Klassen eigene Methoden hinzufügen können.
Conditionable-Trait
Die interne Implementierung der Methoden when()/unless() sowie Anwendungsmuster für den Entwurf fluent APIs.
Illuminate\Support\Manager — Anatomie des Treibersystems
Die zentrale Klasse des Treibersystems, das seit Laravel 4.0 existiert. Von der Registrierung eigener Treiber bis zum MultipleInstanceManager.
Pipeline-Muster
Funktionsweise der Klasse Illuminate\Pipeline\Pipeline und Muster, um mehrere Verarbeitungsschritte als Kette zusammenzusetzen.
InteractsWithData-Trait
Erläutert das Design des Traits, mit dem Sie in der Paketentwicklung eine Datenzugriffs-API in eigenen Klassen implementieren.
tap()-Helper und Tappable-Trait
Verwendung und Implementierungsmuster des Laravel-Helpers tap() sowie des Traits Tappable.
PHP-Attribute
So beschreiben Sie mit den in Laravel 13 eingeführten bzw. erweiterten PHP-Attributen die Konfiguration von Jobs und Modellen deklarativ.
Interne Implementierung des once()-Helpers
Die Funktionsweise des WeakMap-Caches über die Klassen Once und Onceable sowie die Anwendung im Eloquent-Trait PreventsCircularRecursion.
Eloquent-Deep-Dive
Eigene Casts in Eloquent
Eigene Casts durch Implementierung des Interfaces CastsAttributes. Value-Object-Muster, Inbound-Casts und Castables werden ebenfalls vorgestellt.
Eloquent-Observer und Model-Events
Funktionsweise der Events, die Eloquent-Modelle auslösen, sowie die zentrale Verwaltung von Events über Observer-Klassen.
Eloquent-Scopes
Funktionsweise lokaler und globaler Scopes. Von der internen Implementierung wie SoftDeletingScope bis hin zu praktischen Anwendungsfällen.
Collection Deep Dive
Die Implementierung der Laravel Collection aus Sicht der Historie, Klassenstruktur, PHPDoc-Generics und einer Anleitung zum Lesen des Quellcodes.
Higher-Order Messages in Collections
Funktionsweise und praktischer Einsatz der Higher-Order Messages in Collections.
MCP und KI
Einen MCP-Server mit Laravel bauen
Bauen Sie mit dem Paket laravel/mcp einen produktionsreifen MCP-Server auf. Von der Implementierung von Tools, Ressourcen und Prompts bis hin zur Authentifizierung.
Einen eigenen Provider für das AI SDK erstellen
Lesen Sie den Quellcode des Laravel AI SDK und implementieren Sie einen eigenen Provider für einen KI-Dienst, der nicht standardmäßig unterstützt wird.
Einen eigenen Agenten für Boost erstellen
Ein tiefer Blick in die Erweiterungsarchitektur von Laravel Boost sowie eine Anleitung zum Erstellen eigener Agenten.
Authentifizierung, Validierung und Weiteres
Eigene Auth-Guards implementieren
Wie Sie eigene Auth-Guards durch Implementierung der Interfaces Guard und StatefulGuard erstellen — bis auf Quellcode-Ebene erklärt.
Eigene Validierungsregeln
Wie Sie die Validierung mit Regel-Objekten oder Closures erweitern — inklusive Blick in die interne Implementierung.
Rate Limiting anpassen
Ein tiefer Blick auf die Facade RateLimiter sowie die Implementierung individueller Rate Limits pro Benutzer, Plan oder IP-Adresse.
Fortgeschrittenes Testen mit Pest
Von der Expectation API über Datasets, Fakes bis hin zu Mockery — systematische Erläuterung fortgeschrittener Pest-Techniken.