
Viele Wege führen bekanntlich nach Rom und so ist es auch in der Web-Entwicklung mit dem Weg bzw. URL zu einer bestimmten Site. Es gibt verschiedene Wege den URL auf eine bestimmte Site zeigen zu lassen.
Laravel bringt hier ein sehr cooles Feature mit, das sogenannte Routing. Mit dem Routing ist es möglich, auch komplexere URL-Strukturen – z. B. mit Parametern – sehr einfach aufzubauen.
Laravel Routing Kick-Start
Unsere im letzten Teil der Reihe haben wir Laravel installiert, wonach unsere Applikation bereits eine Seite beinhaltete, und zwar die Welcome-Page auf der einfach nur „Laravel 5“ steht. Aber wo kommt die Website eigentlich her? Der Weg zu dieser Site führt über das Routing, dies findet man im Projekt-Verzeichnis unter app/http/routes.php. In routes.php ist folgender Code:
Route::get('/', function () {
return view('welcome');
});
Es wird hier einer Route also einem URL-Pfad der Pfad „/“ zugewiesen und eine Funktion zugewiesen. Die zugewiesene Funktion gibt einfach die View „welcome“ zurück. Die View „welcome“ liegt unter resources/views/welcome.blade.php.
Will man nun eine eigene Site ausspielen legt man diese einfach im Verzeichnis resources/views/ mit der Notation „NameDerSite.blade.php“ an:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>Meine erste Larvel Seite</title>
</head>
<body>
<h1> Meine erste Laravel-Seite</h1>
</body>
</html>
Das „blade“ im Filename ist wichtig für die „blade template engine“ (wird im nächsten Teil der Reihe genauer erklärt) die in Laravel bereits integrierte ist.
In routes.php legt man nun eine zweite Route zur neuen Site an:
Route::get('/NameDerRoute', function() {
return view ('NameDerSite');
});
Wenn man die Webapp nun lokal startet sollte man unter http://localhost:8000/NameDerRoute die neu angelegte Site sehen.
Routing allgemein und speziell in Laravel
Wenn man in PHP ein Website-Projekt entwickelt kommt man schnell an den Punkt wie die URLs bzw. Pfade zu den einzelnen Seiten aussehen sollen. Früher wurde dies so umgesetzt, dass dem URL ein ID-Parameter mitgegeben wurde und anhand von diesem ID-Parameter die entsprechende Site ausgegeben wurde:
http://website.de/site.php?pageId=123
Google und vor allem SEO sei Dank gibt es heute sogenannte sprechende URLs, d. h. im URL soll nicht das Datei-Format der Site (z. B. „.php“) und auch keine unnötige Id stehen. Sondern es soll deutlich erkennbar sein um was es geht:
http://website.de/site/mySite
Wie man in PHP sprechende URLs bzw. ein Routing implementiert wird in dem Blog-Artikel „Einfaches und elegantes URL Routing mit PHP“ von steampixel sehr gut erklärt (https://steampixel.de/einfaches-und-elegantes-url-routing-mit-php/).
Laravel bringt ein solches Routing wie eingangs beschrieben schon mit.
Hier gibt es noch hinzuzufügen, dass man das Routing nicht nur zum Ausspielen von Seiten (GET-Requests) nutzen kann. Es ist mögliche alle Arten von Browser-Requests (GET, POST, PUT und DELETE) mit oder ohne Parametern über das Routing zu bedienen. Man kann in Laravel sogar Route Groups anlegen betreiben, dadurch ist es möglich Attribute wie Middleware oder Parameter über eine große Anzahl von Routes zu definieren, ohne dass diese Attribute auf jeder einzelne Route auf definiert werden müssen. Ein sehr gutes Einführungs-Tutorial zu Laravel Routes ist bei scotch.io unter https://scotch.io/tutorials/simple-and-easy-laravel-routing zu finden. Außerdem ist das Routing Feature in der Laravel-Dokumentation (https://laravel.com/docs/5.1/routing) sehr gut mit vielen Beispielen erklärt.