.. _routing: Routing ################################################################################ .. index:: Routing .. include:: ../../_terms/routing.txt Die Routes befinden sich dabei in einem eigenen Verzeichnis (`routes/`) und wird dabei auf die folgenden Dateien aufgeteilt: `routes/api.php`, `routes/channel.php`, `routes/console.php` und `routes/web.php`. Grundlagen ******************************************************************************** Die simpelste Variante einer Route benötigt eine URI, sowie eine Closure Funktion um eine Anfrage verarbeiten zu können: .. code-block:: php Route::get('foo', function () { return 'Hello World'; }); Standard-Route-Dateien ====================== API-Routes ---------- Routes welche für die `Programmierungsschnittstelle `_ (API) benötigt werden können in der `routes/api.php` definiert werden. Diese Routes sind dabei `Zustandslos `_ und werden mithilfe der :code:`api` middleware Gruppe verarbeitet. .. literalinclude:: ../../_snippets/routes/api.php Broadcasting-Kanäle -------------------- Innerhalb der `routes/channels.php` Datei werden alle Event basierten Kanäle (Broadcasting Channels) des Basissystems definiert. Um nun bspw. eine Aktion auszuführen, muss die Callback Funktion aufgerufen werden. Sobald diese Callback Funktion den Wert Wahr (:code:`true`) zurückliefert, darf die entsprechende Aktion ausgeführt werden. .. literalinclude:: ../../_snippets/routes/channels.php Falls Du jetzt schon in das Broadcasting eintauchen möchtest (was ich nicht empfehle), solltest Du Dir ein Video, von Taylor Otwell, dem Gründer des Laravel PHP Framework: https://laracasts.com/lessons/broadcasting-events-in-laravel-5-1. Konsole-Routes -------------- In der `routes/console.php` Datei kannst Du mithilfe einer Closure Funktion Deine eigenen Artisan Kommandos definieren. Jeder dieser Closure Funktionen ist dabei an eine `command` Instanz gebunden welche Dir die Funktionen bereitstellt um ein eigenes Artisan Kommando zu generieren: .. literalinclude:: ../../_snippets/routes/console.php Web-Routes ---------- Bei den meisten Projekten beginnst Du das definiereren von Routes wahrscheinlich mit der `routes/web.php` Datei. Diese Datei beinhaltet alle öffentlichen Routes welche Du bspw. mithilfe Deines Browser aufrufen kannst. .. literalinclude:: ../../_snippets/routes/web.php :language: php :lines: 3-8 Router-Methoden =============== .. code-block:: php Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback); Route::options($uri, $callback);