... | ... | @@ -2,9 +2,10 @@ 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 zu lesen ist, 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.
|
|
|
Wie im wiki zu lesen ist, 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](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. Die in der web.php angegebenen Controller-Methoden erhalten dabei jeweils die eingehende HTTP-Anfrage als Request-Objekt $request, und verwenden dieses um bspw. Benutzereingaben zu verarbeiten. Außerdem können hier weitere (optionale) Parameter angegeben werden.
|
|
|
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.
|
|
|
Die in der web.php angegebenen Controller-Methoden erhalten dabei jeweils die eingehende HTTP-Anfrage als Request-Objekt $request, und verwenden dieses um bspw. Benutzereingaben zu verarbeiten. Außerdem können hier weitere (optionale) Parameter angegeben werden.
|
|
|
Mehr zum Routing gibt es hier: [Routing] (https://laravel.com/docs/5.4/routing).
|
|
|
|
|
|
## Beispiel 1
|
... | ... | @@ -16,7 +17,7 @@ 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.
|
|
|
|
|
|
Andernfalls werden mit der eingegebenen Suchphrase nach entsprechenden Ergebnissen gesucht und eine HTML-Seite mit den Suchergebnissen generiert und zurückgegeben.
|
|
|
Andernfalls wird mit der eingegebenen Suchphrase nach entsprechenden Ergebnissen gesucht und eine HTML-Seite mit den Suchergebnissen generiert und zurückgegeben.
|
|
|
|
|
|
Dafür werden die vom Laravel-Framework stammenden Blade-Templates verwendet. Blade-Templates sind Dateien, welche zu einem großen Teil aus Standard-HTML bestehen und darüber hinaus die Möglichkeit bieten, mit PHP-Anweisungen Informationen dynamisch darzustellen.
|
|
|
|
... | ... | |