startSection("content"); ?>

Demo für

Kurze Übersicht, wie die Arbeit mit dem Router und der Blade View-Engine funktioniert.

Router

Der Router nimmt den Request entgegen und zerlegt ihn in die einzelnen Teile der URI. Wichtig ist hier vor allem der Pfad und der Querystring.

Wenn der Pfad in der Routenkonfiguration (\$config Array aus der Datei routes/web.php) gefunden wird, lädt der Router die angegebene Klasse.

Funktionsweise

Im vorliegenden Beispiel sehen Sie diese Seite ...

  1. weil der Pfad in der Routenkonfiguration gefunden wurde
  2. und dort 'DemoController@howto' hinterlegt ist
  3. und im Ordner controllers/ die Datei DemoController.php gefunden werden konnte
  4. und mit ihr ein Objekt des Typs DemoController instanziiert werden konnte
  5. und dieses Objekt die Funktion (Action) howto() ausgeführt hat

Sie sehen: da muss einiges stimmen und vieles davon ist Konvention.

Querystrings und Pfadsegmente

Die Actions in den Controller-Klassen sollen per Konvention immer ein RequestData Objekt entgegennehmen. Beispiel: howto(RequestData \$rd)

Dieses RequestData Objekt wird durch den Router befüllt, wenn Daten in der URL extrahiert werden konnten.

Daten finden sich URLs...

Probieren Sie es aus ;)

args)): ?>

Argumente dieses Aufrufs:

args as $a): $__empty_1 = false; ?>

Keine weiteren Argumente im Request

query)): ?>

Daten aus der Query dieses Aufrufs:


 query as $k => $v): $__empty_1 = false; ?>
 $rd->query['']=

 
 

Keine Querydaten

Blade

Blade muss installiert sein. Die Installation ist bereits geschehen und die Bibliothek liegt unter /vendor.

Daten übergeben und View rendern

Bei der Verwendung der View-Engine gelten einige Konventionen: Die Dateien müssen <viewname>.blade.php heißen und im Ordner views liegen.

Sie können der View dann Daten mitgeben, indem Sie alle Daten in ein Array schreiben und dieses dann übergeben.

Beispiel:


 view("viewtest",
 array(
 "texts"=>$textArray,
 "persona"=>$persona,
 "rd"=>$rd
 )); // öffnet ../views/viewtest.blade.php
 
stopSection(); ?> startSection("cssextra"); ?> stopSection(); ?> startSection("jsextra"); ?> stopSection(); ?> runChild(".layouts.layout"); } ?>