@@ -3,15 +3,15 @@ Die MetaGer-Suchmaschine benutzt das PHP-Framework Laravel, welches auf dem MVC-
Zu Beginn sollten die anderen Artikel des Wikis vollständig durchgelesen werden, sowie die [Schritte zum Aufsetzen einer MetaGer-Entwicklungsumgebung] (https://gitlab.metager3.de/open-source/MetaGer/wikis/aufsetzen-einer-metager-entwicklungsumgebung) vollständig ausgeführt werden.
Wie im wiki schon steht, bietet die Datei `/app/routes/web.php` einen guten Einstiegspunkt, um nachzuvollziehen, was beim Aufruf einer bestimmten URL passiert. An dieser Stelle kümmert sich das Laravel-Framework darum, dass HTTP-Anfragen an entsprechende PHP-Methoden in den Controller-Klassen unter app/http/controllers weitergeleitet werden.
Diese Controller-Klassen müssen Unterklassen des Laravel-Controllers sein.
Hier wird die Anfragen dann bearbeitet und je nach Aufgabe des Controllers beispielsweise die nächste HTML-Seite generiert, auf welche der Benutzer weitergeleitet werden soll.
Diese Controller-Klassen müssen Unterklassen des [Laravel-Controllers](https://laravel.com/docs/5.4/controllers) sein.
Hier wird die Anfrage dann bearbeitet und je nach Aufgabe des Controllers beispielsweise die nächste HTML-Seite generiert, auf welche der Benutzer weitergeleitet werden soll.
## Beispiel 1
Einträge in der 'web.php' sehen beispielsweise so aus:
Gibt ein Nutzer nun die URL http://metager.de/zitat-suche in die Adressleiste seines Browsers ein, so wird eine HTTP GET Anfrage an die MetaGer-Server versendet, wo diese dann an die Methode `zitatSuche` in der Klasse `ZitatController` weitergeleitet wird.
Diese überprüft, ob bereits vom Benutzer eine Zitatsuchanfrage gesendet worden ist. Falls nein, bekommt der Nutzer die Zitatsuchmaske angezeigt.
...
...
@@ -51,20 +51,16 @@ Eintrag in der `web.php`
});
Sobald der Nutzer die Seite http://metager.de/kontakt aufruft, trifft eine HTTP-GET Anfrage bei den MetaGer-Servern ein.
Im Gegensatz zum ersten Beispiel wird hier keine Controller-Klasse angegeben. Stattdessen wird direkt das Blade-Template
`/resources/views/kontakt/kontakt.blade.php` zurückgegeben. Laravel ermöglicht die Verwaltung von mehreren Spracheinstellungen, sodass `trans('titles.kontakt')` je nach Sprachauswahl den richtigen String in das Template einfügt.
Auf http://metager.de/kontakt kann der Nutzer ein Kontaktformular ausfüllen und dieses dann abschicken.
Dabei ist der 'Versenden'-Button an ein HTML-Form gebunden, welches als Anfrage-Methode POST verwendet.
Sobald dieser Button gedrückt worden ist, geht eine HTTP-POST Anfrage bei den MetaGer-Servern ein. Der dazugehörige Eintrag
in der `web.php` lautet
Im Gegensatz zum ersten Beispiel wird hier keine Methode einer Controller-Klasse angegeben. Stattdessen ist die Funktion, welche ausgeführt werden soll
direkt im Argument dieses `Route::get`-Aufrufs angegeben. Dabei wird das Blade-Template `/resources/views/kontakt/kontakt.blade.php` mit den Informationen im `return` ergänzt und zurückgegeben.
Sollte der Nutzer nun eine Kontaktanfrage versenden, so geht diese in Form einer HTTP-POST Anfrage bei den MetaGer-Servern ein.
Diese Anfrage beinhaltet die vom Benutzer eingegebenen Informationen, wie etwa E-Mail und die eigentliche Nachricht.
Diese Anfrage beinhaltet die vom Benutzer eingegebenen Informationen, wie etwa seine E-Mail-Adresse und die eigentliche Nachricht.
In der Klasse `MailController` wird die Anrage von der Methode `contactMail` verarbeitet und der Benutzer auf eine Seite weitergeleitet, welche je nach Inhalt der Nachricht den Versand bestätigt bzw. den Benutzer um die richtige Eingabe der Daten bittet.
Mehr Informationen zu Blade-Templates gibt es [hier] (https://laravel.com/docs/5.4/blade).
Hier klicken für mehr Informationen zu [Blade-Templates](https://laravel.com/docs/5.4/blade) und [Routing](https://laravel.com/docs/5.4/routing).
Bei weiteren Fragen einfach eine E-Mail an aria@suma-ev.de senden.