Skip to main content
Mit Laravel 11 wurde die Anwendungsstruktur als „Slim Application Skeleton” grundlegend überarbeitet. Wer in einem Projekt mit alter Struktur eingestiegen ist oder mit Laravel 10 und älteren Büchern gelernt hat, stolpert an denselben Stellen. Wir sammeln hier die Fragen, die in Laracasts-Foren und auf Stack Overflow rund um das Release von Laravel 11 besonders häufig gestellt wurden.
Dieses FAQ richtet sich an neue Projekte (Laravel 11 oder höher). Die Migration eines bestehenden Projekts wird im Migrationsleitfaden beschrieben.
In der neuen Struktur werden selten geänderte Config-Dateien aus dem Projekt entfernt. Verwendet werden dann die Dateien im Framework-eigenen config/.Projekt- und Framework-config/ werden gemergt, wobei die Projekt-Seite Vorrang hat. Sobald Anpassungen nötig sind, legen Sie die Datei einfach an — sie wird berücksichtigt.
In der neuen Struktur von Laravel 11 ist App\Http\Controllers\Controller eine leere Klasse. Sie erbt nicht mehr von Illuminate\Routing\Controller und verwendet weder ValidatesRequests noch AuthorizesRequests.Referenz: Controller in Laravel 10 vs. Controller in Laravel 11Alternativen:
Wenn Sie diese Methoden häufig brauchen, können Sie App\Http\Controllers\Controller wie in Laravel 10 wiederherstellen.
In der neuen Struktur entfällt app/Http/Kernel.php. Middleware konfigurieren Sie über withMiddleware() in bootstrap/app.php.
Die Middleware-Dateien selbst legen Sie weiterhin in app/Http/Middleware/ an.
$this->middleware() gehört zu Illuminate\Routing\Controller und ist im leeren Basiscontroller der neuen Struktur nicht verfügbar.Verwenden Sie stattdessen das Interface HasMiddleware und definieren Sie die Methode middleware().
Ab Laravel 13 gibt es zusätzlich das Attribut #[Middleware].
Referenz: Controller-Middleware
authorizeResource() gehört zum Trait AuthorizesRequests und ist im leeren Basiscontroller der neuen Struktur nicht verfügbar.Es gibt mehrere Optionen.1. Basiscontroller wie in Laravel 10 wiederherstellen (am einfachsten)
Damit steht $this->authorizeResource() wieder zur Verfügung.2. Das Laravel-13-Attribut #[Authorize] an jeder Methode einsetzen
In der neuen Struktur entfällt app/Console/Kernel.php; der Scheduler wird an anderer Stelle konfiguriert.In routes/console.php (empfohlen):
In bootstrap/app.php:
In der neuen Struktur entfällt der EventServiceProvider — Events und Listener müssen nicht mehr manuell registriert werden.Automatische Registrierung: Deklarieren Sie in der handle()-Methode des Listeners die Event-Klasse per Type-Hint — sie wird automatisch registriert.
Manuelle Registrierung erfolgt in AppServiceProvider::boot().
In der neuen Struktur wird die Provider-Liste nicht mehr in config/app.php, sondern in bootstrap/providers.php gepflegt.
Ein per artisan make:provider erzeugter Provider wird automatisch dort eingetragen.
In der neuen Struktur entfällt app/Exceptions/Handler.php. Ausnahmebehandlung konfigurieren Sie über withExceptions() in bootstrap/app.php.
Routing passen Sie über withRouting() in bootstrap/app.php an.Zusätzliche Route-Datei einbinden:
Vollständige Kontrolle (wie beim RouteServiceProvider in Laravel 10):Mit using deaktivieren Sie die Standard-Registrierung von Laravel vollständig und übernehmen alles selbst.
Fügen Sie in config/app.php den Schlüssel providers ein — die Einstellung wird mit der Framework-Konfiguration gemergt.
Mit replace() tauschen Sie Standard-Provider durch eigene Implementierungen aus.
Ab Laravel 11 sind API-Funktionen standardmäßig nicht enthalten und werden bei Bedarf einzeln installiert.
Der Befehl legt bzw. konfiguriert:
  • routes/api.php
  • Einstellungen für Laravel Sanctum als API-Authentifizierung
  • Registrierung der API-Routen in bootstrap/app.php
Auch Broadcasting ist ab Laravel 11 standardmäßig nicht enthalten und wird bei Bedarf einzeln installiert.
Der Befehl legt bzw. konfiguriert:
  • routes/channels.php
  • Setup von Laravel Reverb
  • Broadcasting-Konfigurationsdateien
Schauen Sie in bootstrap/app.php.Neue Struktur ab Laravel 11 (oder bereits migriert):
Ein Projekt in alter Struktur, das nur auf die neue Version gehoben wurde:
Beginnt die Datei mit return Application::configure(...), ist es die neue Struktur — andernfalls ein Upgrade in alter Struktur. Die Migration zur neuen Struktur beschreibt der Migrationsleitfaden.

Verwandte Seiten

Anwendungsstruktur ab Laravel 11

Vollständige Erläuterung der neuen App-Struktur und der internen Implementierung des ApplicationBuilder.

Migrationsleitfaden von alter zu neuer Struktur

Schritt-für-Schritt-Anleitung zum Umstieg von Laravel 10 auf die neue Struktur ab Laravel 11.
Zuletzt geändert am 13. Juli 2026