Responses
Um Header in brandbox einheitlich und geregelt versenden zu können, bietet brandbox eine Sammlung an "response"-Klassen an.
Aufbau
Alle Response-Objekte folgen dem Interface responseInterface
und leiten von der abstrakten Klasse responseAbstract
ab. Dies führt dazu, dass jedes Response-Objekt die Möglichkeiten bietet, Eigenschaften des zu versendenen Headers festzulegen (beispielsweise den Statuscode). Jedes Response-Objekt verfügt über die Eigenschaften $data
und $params
. Diese Parameter werden im Konstruktor von responseAbstract
erwartet. Die Anfrage terminiert in der Regel, wenn ein Header über ein Reponse-Objekt versandt wird. Nähere Informationen zu den Response-Klassen sind in der folgenden Tabelle zu finden.
Response-Klassen
Klasse | Art der Antwort | Details |
---|---|---|
http/response/download.php | Download der beigefügten Datei | $data des Headers enthält den Pfad zur Datei $params['method'] enthält die Methode des Downloads. Als Rückfall wird "attachment" gewählt. |
http/response/encrypted.php | Liefert Daten verschlüsselt aus | $data wird anhand des Systemsweiten CryptoKeys verschlüsselt und ausgeliefert. |
http/response/invalid.php | JSON Repräsentation einer Fehlermeldung | $data enthält die ID eines Fehlers. Diese ID wird mit "x-brandbox-" konkateniert. Das header.js kann mit diesem "x-brandbox-id"-String umgehen. Ist ein "alert"-Element im DOM platziert, wird dieses sichtbar gemacht (siehe https://getbootstrap.com/docs/4.0/components/alerts/). |
http/response/json.php | JSON Repräsentation der Daten | $data wird json-kodiert und ausgeliefert. Der ContentType ist "application/json". |
http/response/location.php | Location Header | $data enthält eine URL. Location.href wird zu dieser URL geändert. |
http/response/message.php | Daten werden als brandbox-Message dargestellt | $data enthält den gewünschten Text. $params enthält CSS-Klassen. |
http/response/plain.php | Einfaches Ausliefern der Daten. | $data enthält die auszuliefernden Daten. Der ContentType ist "text/plain". |
http/response/redirect.php | Weiterleitung auf eine URL. | $data enthält eine URL. Verschickt wird ein "x-brandbox-redirect" header. Das header.js ändert den Wert des HREF des aktuellen Dokuments. |
http/response/routeToAdmin.php | Redirect oder Location auf /admin | Siehe Beschreibung von "http/reponse/location.php" bzw. "http/reponse/redirect.php". $data ist die URL auf "/admin". Über routeToAdmin::setMethod() kann die Art der Umleitung gewählt werden (location oder redirect). |
http/reponse/routeToUrl.php | Redirect oder Location auf die gewünschte URL. | Siehe Beschreibung von "http/reponse/location.php" bzw. "http/reponse/redirect.php". $data ist die gewünschte URL. Über routeToUrl::setMethod() kann die Art der Umleitung gewählt werden (location oder redirect). |
http/response/state.php | Versenden von zwei Statusheadern. | $data enthält die Bezeichnung (key) des Status. $params[0] enthält den Wert des Status. Es wird jeweils ein Header gesendet; einer für den "Key", einer für den "Value". Das Programm wird nicht terminiert. |
http/reponse/stateAttribute.php | Versenden eines Statusheaders. | Der Konstruktor weicht von der abstrakten Elternklasse ab. Die Signatur ist "stateAttribute::construct($data, $value)". $data enthält die Bezeichnung (key) des Status. $value enthält den Wert des Status. Es wird nur ein Header versandt. Das Programm wird nicht terminiert. |
http/reponse/valid.php | Versenden eines Headers bei erfolgreicher Anfrage. | $data enthält die ID. Diese ID wird mit "y-brandbox-" konkateniert. Ist die Anfrage erfolgreich, wird im DOM nach einem Element gesucht, das die Klasse "y-brandbox-id" besitzt. Existiert ein solches Element wird dieses sichtbar gemacht. |