Welcome to the Cookbook

loading...

5.5.4 Auf Requests antworten

Der Originaltext dieses Abschnitts hat sich seit der letzen Übersetzung geändert. Bitte hilf dabei die Unterschiede zu lösen. Du kannst:

Mehr Informationen zu Übersetzungen

Zusätzlich zur Request-Erkennung ermöglicht der RequestHandler einen einfachen Zugang zum Ändern des Mappings für die Output- und Content-Types der Anwendung.

setContent($name, $type = null)
  • $name string - Der Name des Content-Types, d.h. html, css, json, xml.
  • $type mixed - Die mime-type(s), zu denen der Content-type gehört.

setContent setzt bzw. fügt den Content-Type für einen gegebenen Namen hinzu und erlaubt das Mappen der Content-Types zu benutzerfreundlicheren Abkürzungen und Aliassen. Dies erlaubt dem RequestHandler automatisch auf jeden Requesttyp in seiner startup-Methode zu antworten. Weiterhin werden diese Content-Types von prefers() und accepts() verwendet.

setContent wird am besten in der beforeFilter()-Methode der Controller benutzt, da dies am ehesten der Automatisierung der Content-Type-Aliasse dient.

Das Standard-Mapping sieht folgendermaßen aus:

  • javascript text/javascript
  • js text/javascript
  • json application/json
  • css text/css
  • html text/html, */*
  • text text/plain
  • txt text/plain
  • csv application/vnd.ms-excel, text/plain
  • form application/x-www-form-urlencoded
  • file multipart/form-data
  • xhtml application/xhtml+xml, application/xhtml, text/xhtml
  • xhtml-mobile application/vnd.wap.xhtml+xml
  • xml application/xml, text/xml
  • rss application/rss+xml
  • atom application/atom+xml
  • amf application/x-amf
  • wap text/vnd.wap.wml, text/vnd.wap.wmlscript, image/vnd.wap.wbmp
  • wml text/vnd.wap.wml
  • wmlscript text/vnd.wap.wmlscript
  • wbmp image/vnd.wap.wbmp
  • pdf application/pdf
  • zip application/x-zip
  • tar application/x-tar
prefers($type = null)

Gibt an, welchen Content-Type der Client bevorzugt. Wenn kein Parameter angegeben ist, wird der wahrscheinlichste Wert zurückgegeben. Wenn $type ein Array ist, wird der erste Typ zurückgegeben, den der Client aktzeptiert. Das bevorzugte Betriebssystem wird hauptsächlich durch die Dateiendung ermittelt, falls diese vom Router geparst und übermittelt wird. Als Alternative wird die Liste von Content-Types in HTTP_ACCEPT genutzt.

renderAs($controller, $type)
  • $controller - Controller-Referenz
  • $type - Benutzerfreundlicher Name für den Content-Type, um den Content z.B. auf xml oder rss zu rendern.

Ändert den Render-Modus des Controllers auf den angegebenen Typ. Hängt, falls verfügbar und noch nicht im Array vorhanden, ebenfalls den passenden Helper zum Helper-Array des Controllers hinzu.

respondAs($type, $options)
  • $type - Benutzerfreundlicher Name für den Content-Type wie xml, rss oder ein kompletter Content-Type wie application/x-shockwave.
  • $options - Wenn $type ein benutzerfreundlicher Name ist, der mehr als eine Content-Assoziation hat, wird $index verwendet um einen Content-Type auszuwählen.

Setzt den Response-Header basierend auf dem Namen der Content-Type-Map. Falls DEBUG größer als 2 ist, wird dieser Header nicht gesetzt.

responseType()

Gibt den aktuellen Response-Type des Content-Type zurück oder null, wenn dieser noch gesetzt werden muss.

mapType($ctype)

Mapt einen Content-Type auf ein Alias zurück.