... | ... | @@ -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:
|
|
|
|
|
|
Route::get('zitat-suche', 'ZitatController@zitatSuche');
|
|
|
|
|
|
## Beispiel
|
|
|
|
|
|
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.
|
|
|
Der dazugehörige Eintrag in der `web.php` lautet
|
|
|
|
|
|
Route::post('kontakt', 'MailController@contactMail');
|
|
|
|
|
|
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. |