Laravel
Webanwendungen mit Laravel entwickeln: Routing, Eloquent-Modelle, Authentifizierung, Queues und Deployment, erklärt mit praktischen Beispielen für echte Projekte.
Hier gibt es noch keine Geschichten!
Darüber haben wir noch nichts geschrieben. Sehen Sie sich ein anderes Thema an oder kommen Sie bald wieder!
Fragen zu diesem Thema
Kurze, klare Antworten auf die häufigsten Fragen unserer Leser zu diesem Thema.
Was ist Laravel?
Laravel ist ein kostenloses Open-Source-Framework für PHP, mit dem Webanwendungen gebaut werden. Es liefert Entwicklern fertige Bausteine für Routing, Datenbanken, Anmeldung, E-Mail, Warteschlangen und Tests, sodass sie weniger wiederholten Code schreiben. Das Framework folgt dem Muster Model, View, Controller und hat eine große Community.
Wofür wird Laravel verwendet?
Laravel wird für Webanwendungen wie Verwaltungssysteme, Kundenportale, Onlineshops, Buchungsplattformen und APIs für mobile Apps eingesetzt. Es eignet sich für jedes Projekt mit Nutzern, einer Datenbank und Geschäftsregeln. Viele Unternehmen betreiben große interne Systeme mit Laravel, weil das Framework stabil und leicht erweiterbar ist.
Ist Laravel gut für Anfänger?
Laravel ist gut für Anfänger, die bereits Grundlagen in PHP haben, weil sein Code gut lesbar und die offizielle Dokumentation klar ist. Dazu kommen eine große Community, viele Tutorials und Starter-Kits, die Anmeldeseiten für Sie einrichten. Wer zuerst reines PHP lernt, versteht das Framework deutlich leichter.
Wie installiere ich Laravel auf meinem Computer?
Sie installieren zuerst PHP und Composer und führen dann composer create-project laravel/laravel gefolgt vom Projektnamen aus. Der Laravel-Installer mit dem Befehl laravel new tut dasselbe und bietet Starter-Kits an. Danach startet php artisan serve einen lokalen Server, sodass Sie die App im Browser öffnen können.
Welche PHP-Version braucht Laravel?
Laravel braucht eine aktuelle Version von PHP 8, und jede Laravel-Version nennt die niedrigste unterstützte PHP-Version. Neuere Laravel-Versionen geben ältere PHP-Versionen auf, sobald deren Sicherheitssupport endet. Prüfen Sie immer den Upgrade-Leitfaden der Laravel-Version, die Sie nutzen wollen.
Was ist Routing in Laravel?
Routing in Laravel verbindet eine Webadresse und eine HTTP-Methode wie GET oder POST mit dem Code, der darauf antwortet. Routen stehen in Dateien wie routes/web.php für Seiten und routes/api.php für APIs. Eine Route kann eine Closure oder eine Controller-Methode aufrufen und Middleware für Anmeldung und andere Prüfungen tragen.
Was ist Eloquent in Laravel?
Eloquent ist das ORM von Laravel, also der Teil, mit dem Sie Datenbanktabellen als PHP-Klassen, sogenannte Models, bearbeiten. Jedes Model entspricht einer Tabelle und jedes Objekt einer Zeile, sodass Sie Daten ohne SQL lesen und speichern. Eloquent verwaltet auch Beziehungen wie eins-zu-viele und viele-zu-viele.
Wie funktionieren Eloquent-Beziehungen in Laravel?
Eloquent-Beziehungen sind Methoden an einem Model wie hasMany, belongsTo und belongsToMany, die beschreiben, wie zwei Tabellen verbunden sind. Einmal definiert, lesen Sie verknüpfte Daten wie $order->customer, ohne einen Join zu schreiben. Eager Loading mit der Methode with lädt verknüpfte Zeilen in einem Schritt und vermeidet langsame Wiederholungsabfragen.
Was ist das N+1-Abfrageproblem in Laravel?
Das N+1-Problem entsteht, wenn Code eine Liste von Datensätzen lädt und dann für jeden Datensatz eine zusätzliche Abfrage nach verknüpften Daten ausführt. Eine Seite mit 100 Bestellungen kann so 101 Abfragen auslösen und langsam werden. Eager Loading mit der Methode with behebt das, indem es die verknüpften Zeilen in einer Abfrage holt.
Was sind Migrationen in Laravel?
Migrationen in Laravel sind PHP-Dateien, die Datenbanktabellen per Code anlegen und ändern. Mit php artisan migrate werden sie ausgeführt, sodass jeder Entwickler und jeder Server dieselbe Datenbankstruktur erhält. Da Migrationen in der Versionsverwaltung liegen, bleibt die Geschichte jeder Tabellenänderung erhalten.
Was ist Blade in Laravel?
Blade ist die Template-Engine von Laravel, mit der Sie HTML-Seiten mit einfachen Tags für Schleifen, Bedingungen und Layouts schreiben. Blade maskiert ausgegebene Werte standardmäßig und schützt Seiten so vor Cross-Site-Scripting. Templates werden zu reinem PHP kompiliert und zwischengespeichert, daher kostet Blade pro Anfrage fast nichts.
Wie funktioniert die Authentifizierung in Laravel?
Die Authentifizierung in Laravel arbeitet mit Guards, die prüfen, wer der Nutzer ist, und Providern, die Nutzer aus der Datenbank laden. Starter-Kits wie Laravel Breeze ergänzen fertige Seiten für Anmeldung, Registrierung und Passwort-Zurücksetzen. Passwörter werden mit bcrypt oder Argon2 gehasht und nie im Klartext gespeichert.
Was ist der Unterschied zwischen Laravel Sanctum und Laravel Passport?
Laravel Sanctum bietet einfache Anmeldung per Token und Cookie für Single-Page-Apps, mobile Apps und einfache APIs, während Laravel Passport ein vollständiger OAuth2-Server ist. Die meisten Projekte brauchen nur Sanctum, weil es leichter und einfacher einzurichten ist. Passport passt, wenn externe Anwendungen sich im Namen Ihrer Nutzer anmelden müssen.
Was ist Middleware in Laravel?
Middleware in Laravel sind Schichten, die eine Anfrage prüfen oder verändern, bevor sie Ihren Code erreicht, oder eine Antwort, bevor sie hinausgeht. Typische Middleware übernimmt Anmeldeprüfung, CSRF-Schutz, Begrenzung der Anfragen und Spracheinstellungen. Sie können Middleware an einzelne Routen, Routengruppen oder die ganze Anwendung hängen.
Wie funktionieren Warteschlangen in Laravel?
Warteschlangen (Queues) in Laravel verlagern langsame Aufgaben wie E-Mail-Versand oder Berichtserstellung aus der Webanfrage in Hintergrund-Jobs. Ein Job wird an einen Queue-Treiber wie Redis oder die Datenbank übergeben, und ein mit php artisan queue:work gestarteter Worker führt ihn aus. Der Nutzer erhält schnell eine Antwort, während die schwere Arbeit im Hintergrund läuft.
Wann sollte ich Warteschlangen in einer Laravel-Anwendung einsetzen?
Setzen Sie Warteschlangen ein, sobald eine Aufgabe länger als einen Augenblick dauert oder mit einem externen Dienst spricht, etwa bei E-Mail, Dateiverarbeitung oder Webhooks von Zahlungsanbietern. Warteschlangen halten Seiten schnell und lassen fehlgeschlagene Jobs von selbst erneut laufen. Laravel Horizon bietet ein Dashboard zur Überwachung von Redis-Warteschlangen.
Wie plane ich Aufgaben in Laravel?
Sie legen Aufgaben im Scheduler mit Methoden wie daily oder everyFiveMinutes fest und lassen php artisan schedule:run über einen einzigen Cron-Eintrag auf dem Server jede Minute laufen. Der Scheduler entscheidet dann, welche Aufgaben fällig sind. So bleiben alle zeitgesteuerten Jobs im Code statt in vielen einzelnen Cron-Zeilen.
Wie validiere ich Formulardaten in Laravel?
Formulardaten validieren Sie mit der Methode validate am Request oder mit einer Form-Request-Klasse, die die Regeln enthält. Regeln wie required, email, max und unique prüfen jedes Feld, bevor Ihr Code es verwendet. Schlägt die Validierung fehl, schickt Laravel den Nutzer mit Fehlermeldungen und den bisherigen Eingaben zurück.
Wie schützt Laravel vor häufigen Web-Angriffen?
Laravel schützt mit CSRF-Tokens in Formularen, maskierter Ausgabe in Blade, Parameterbindung in Datenbankabfragen und gehashten Passwörtern. Diese Voreinstellungen wehren im normalen Einsatz Cross-Site Request Forgery, Cross-Site-Scripting und SQL-Injection ab. Entwickler müssen trotzdem Eingaben prüfen, Berechtigungen kontrollieren und das Framework aktuell halten.
Wie bringe ich eine Laravel-Anwendung auf einen Server?
Sie holen den Code auf den Server, führen composer install ohne Entwicklungspakete aus, richten die .env-Datei ein und führen die Migrationen aus. Danach speichern Sie Konfiguration, Routen und Views im Cache und richten den Webserver auf den Ordner public aus. Viele Teams automatisieren diese Schritte aus Git, damit jede Veröffentlichung gleich abläuft.
Welchen Server braucht eine Laravel-Anwendung?
Eine Laravel-Anwendung braucht einen Server mit PHP, einem Webserver wie Nginx oder Apache, einer Datenbank wie MySQL oder PostgreSQL und Composer. Oft kommt Redis für Cache und Warteschlangen hinzu, und ein Prozessmanager hält die Queue-Worker am Laufen. Hostrena, die Hosting-Marke von Linkysoft, bietet Web-App-Hosting für Laravel mit Bereitstellung direkt aus Git.
Wie mache ich eine Laravel-Anwendung schneller?
Eine Laravel-Anwendung wird schneller, wenn Sie Konfiguration, Routen und Views cachen, Beziehungen per Eager Loading laden und den durchsuchten Datenbankspalten Indizes geben. Langsame Arbeit in Warteschlangen zu verlagern und schwere Abfrageergebnisse in Redis zu cachen hilft zusätzlich. PHP OPcache auf dem Server bringt mit wenig Aufwand einen großen Gewinn.
Wie teste ich eine Laravel-Anwendung?
Sie testen eine Laravel-Anwendung mit PHPUnit oder Pest, die in jedem neuen Projekt bereits eingerichtet sind. Feature-Tests senden simulierte Anfragen an Ihre Routen und prüfen Antwort und Datenbank, Unit-Tests prüfen einzelne Klassen. Mit php artisan test läuft die gesamte Testsuite.
Kann Laravel große Anwendungen mit vielen Nutzern bewältigen?
Ja, Laravel bewältigt große Anwendungen mit vielen Nutzern, wenn es auf guten Servern mit Caching, Warteschlangen, Datenbankindizes und mehreren App-Servern hinter einem Load Balancer läuft. Die Grenze ist selten das Framework selbst, meist sind es langsame Abfragen und fehlende Caches. Aus diesem Grund entwickelt Linkysoft individuelle Webanwendungen mit PHP, Laravel, MySQL und Redis.
Wie oft sollte ich meine Laravel-Version aktualisieren?
Aktualisieren Sie Laravel spätestens, bevor Ihre aktuelle Version keine Sicherheitskorrekturen mehr erhält. Laravel veröffentlicht etwa einmal im Jahr eine Hauptversion, jeweils mit einem Upgrade-Leitfaden. Kleine, regelmäßige Upgrades sind viel einfacher als ein Sprung über mehrere Versionen.