Nette Framework
  • Úvodní stránka
  • Download
  • Dokumentace
  • Fórum
  • Blog
  • Přispějte
  • Quick Start
    • Začínáme
    • Adresářová struktura
    • Vytvoření presenteru
    • Připojení šablony
    • Tvorba odkazů
    • Hezčí šablony
    • Zobrazení tabulky
    • Stránkování a řazení
    • Tvoříme komponentu
  • Nette\Application
    • Application
    • AppForm
    • Control
    • Presenter
    • PresenterCompo­nent
    • PresenterRequest
    • MultiRouter
    • Route
    • SimpleRouter
  • Nette\Caching
  • Nette\Component
  • Nette\Debug
    • Základy
    • Logování chyb
    • Firebug
  • Nette\Environment
  • Nette\Forms
  • Nette\IO\SafeS­tream
  • Nette\Loaders
  • Nette\Object
  • Nette\Security
    • Bezpečnost aplikací
    • Identity
    • SimpleAuthenti­cator
    • Permission
    • Dynamická správa rolí a zdrojů
  • Nette\String
  • Nette\Templates
    • Template
    • Template Filters
    • Template Helpers
  • Nette\Web\Html
  • Nette\Web\HttpR­equest
  • Nette\Web\HttpR­esponse
  • Nette\Web\Session
  • Nette\Web\User
Naposledy změněno 17. 11. 2008 Edituj Historie Poslední změny

Nette\Web\HttpR­esponse

Třída zapouzdřuje a sjednocuje funkce pro obsluhu HTTP odpovědi serveru.

Umožňuje:

  • změnit stavový kód odpovědi
  • určit typ obsahu a jeho kódování
  • odeslat HTTP hlavičky
  • správu cookies

Získaní objektu HttpResponse

$httpResponse = new Nette\Web\HttpResponse;

nebo pokud používáte běhové prostředí Nette můžete použít metodu Nette\Environ­ment::getHttpRes­ponse():

$httpResponse = Nette\Environment::getHttpResponse();

Použití

Změna kódu odpovědi

$httpResponse->setCode(Nette\Web\IHttpResponse\S404_NOT_FOUND); // změní kód na 404 Not Found

kódy jsou před připraveny jako konstanty v rozhraní Nette\Web\IHttpRes­ponse:

S200_OK = 200,
S204_NO_CONTENT = 204,
S300_MULTIPLE_CHOICES = 300,
S301_MOVED_PERMANENTLY = 301,
S302_FOUND = 302,
S303_SEE_OTHER = 303
S303_POST_GET = 303
S304_NOT_MODIFIED = 304
S307_TEMPORARY_REDIRECT= 307
S400_BAD_REQUEST = 400
S401_UNAUTHORIZED = 401
S403_FORBIDDEN = 403
S404_NOT_FOUND = 404
S410_GONE = 410
S500_INTERNAL_SERVER_ERROR = 500
S501_NOT_IMPLEMENTED = 501
S503_SERVICE_UNAVAILABLE = 503

Změna typu obsahu

Odešle hlavičku Content-type:

$httpReponse->setContentType('text/plain', 'UTF-8');

Nastavení expirace dokumentu

$httpResponse->expire(3600); // cache na straně prohlížeče vyprší za hodinu

Metodě expire můžete také předat timestamp tedy čas vypršení cache.

Odeslání ostatních HTTP hlaviček

Na ostatní hlavičky je tu metoda setHeader():

$httpResponse->setHeader('Pragma', 'no-cache');

Chcete-li přepsat již nastavenou hlavičku předejte metodě jako třetí parametr TRUE:

$httpResponse->setHeader('Pragma', 'no-cache', TRUE);

Pokud potřebujete zjistit zda je ještě možné odeslat další hlavičku (např. byl již odeslán nějaký výstup), můžete použít metodu headersSent(), ta vrací TRUE pokud byly hlavičky odeslány a nelze tedy už odeslat další.

Seznam hlaviček připravených k odeslání (nebo již odeslaných) získáte metodou getHeaders().

Cookies

Pro manipulaci s cookies slouží metody setCookie() a deleteCookie()

$httpResponse->setCookie('author', 'xgd', time() + 24 * 60 * 60); // nastaví cookie author na hodnotu xgd

Odstranění cookie:

$httpResponse->deleteCookie('author');

Tyto dvě metody přijimájí ještě další parametry: $path (pod-adresář kde bude cookie dostupná), $domain, $secure.

Viz také:

  • Nette\Web\HttpR­esponse API reference
« Nette\Web\HttpR­equest Nette\Web\Session »

Nette Framework powered | dibi powered | Texy! powered | Institut Školení PHP