Responses
Die Klasse rex_response
Die Klasse rex_response
bietet Methoden für das Handling von
- Inhalte senden
- http(s) Statuscodes
- Redirects
- Outputbuffer
Methoden
setStatus
setStatus($httpStatus)
Setzt den Statuscode. Beispiel: rex_response::setStatus(rex_response::HTTP_OK)
.
getStatus
getStatus()
Gibt den aktuellen Statuscode zurück. Beispiel: rex_response::getStatus()
.
sendRedirect
sendRedirect($url)
Bewirkt einen Redirect auf die übergebene URL mit dem über die Methode setStatus
gesetzten Statuscode. Die Ausführung von weiterem Code wird per exit
beendet.
Beispiel:
Es soll ein Redirect mit dem Status 301
ausgeführt werden. Das kann z. B. im Template oder auch aus einem Modul heraus geschehen.
<?php
rex_response::setStatus(301);
rex_response::sendRedirect(rex_getUrl(article_id));
Erweitertes Beispiel: Es soll ein Redirect zu einer bestimmten Sprache (clang_id), mit URL-Parametern (param=foo) sowie einem Sprunganker (#anchor) ausgeführt werden.
<?php
rex_response::setStatus(301);
rex_response::sendRedirect(rex_getUrl(article_id,clang_id,["param"=>"foo"],"&")."#anchor");
getStatus
getStatus()
Gibt den aktuellen Statuscode zurück. Beispiel: rex_response::getStatus()
.
sendFile
sendFile($file, $contentType, $contentDisposition = 'inline')
Leert den Outputbuffer und prüft, ob die in $file
übergebene Datei vorhanden ist.
Wenn die Datei nicht im Filesystem gefunden wurde, wird ein HTTP_NOT_FOUND
Statuscode verschickt und die Ausführung per exit
beendet.
Wenn die Datei gefunden wurde, wird standardmäßig ein Cachecontrol Header
geschickt. Der Cachecontrol Header kann über die Methode sendCacheControl
selbst gesetzt werden.
Wenn keine automatische Kompression verfügbar ist, wird der Header für Content-Length
gesetzt, damit der Browser einen Ladebalken anzeigen kann.
sendResource
sendResource($content, $contentType = null, $lastModified = null, $etag = null, $contentDisposition = null, $filename = null)
, z.B.
rex_response::sendResource($content, 'Content-Type: application/pdf', time(), null, 'attachment', "Meine PDF-Datei als Download.pdf");
Verschickt eine Ressource über die Methoden sendCacheControl
und sendContent
.
sendPage
sendPage($content, $lastModified = null)
Verschickt den Inhalt von $content
. Optional kann ein Last Modified
-Wert als Timestamp übergeben werden. Der Inhalt von $content
kann über den Extensionpoint OUTPUT_FILTER modifiziert werden.
sendContent
sendContent($content, $contentType = null, $lastModified = null, $etag = null)
Verschickt den Inhalt von $content
.
cleanOutputBuffer
cleanOutputBuffers()
Löscht alle Ausgabepuffer.
sendContentType
sendContentType($contentType = null)
Verschickt einen Content-Type Header. Standard ist text/html; charset=utf-8
.
sendCacheControl
sendCacheControl($cacheControl = 'must-revalidate, proxy-revalidate, private, no-cache, max-age=0')
Verschickt den Cache Control Header.
sendLastModified
sendLastModified($lastModified = null)
Verschickt den Last Modified Header. Standard ist das aktuelle Datum und die aktuelle Uhrzeit. Wenn die Zeit identisch ist mit dem vom Browser übermittelten Wert HTTP_IF_MODIFIED_SINCE
, wird der Ausgabepuffer verworfen und der Statuscode NOT_MODIFIED
(304) übermittelt.
sendEtag
sendEtag($cacheKey)
Prüft, ob der Inhalt den ETAG Cache Schlüssel geändert hat.
sendGzip
sendGzip($content)
Wenn der Browser Gzip/x-Gzip unterstützt, wird $content
komprimiert übertragen.
md5
md5($content)
Erzeugt einen md5-Hash aus $content
. Inhalt, der von <!--DYN-->.*<!--/DYN-->
umschlossen ist, wird ignoriert.
Artikel bearbeiten