Jet\Http_Headers
Jak název třídy napovídá, tak slouží k práci s HTTP hlavičkami, přesněji řečeno pro odesílání hlaviček odpovědi a velice často k různým přesměrováním a podobně.
Metoda | Význam |
---|---|
public static response( int $code, array $headers = [], string $custom_response_message='' ): void |
Sestaví a odešle HTTP odpověď. Parametry:
|
public static redirect( int $http_code, string $target_URL, array $headers = [], bool $application_end = true ): void |
Provede přesměrování na danou URL za pomoci volitelného HTTP návratového kódu.
Tedy například:
Http_Headers::redirect(
Pomocí parametru headers lze definovat další volitelné hlavičky (princip stejný jako u metody response). Parametr $application_end pak určuje, zda má po přesměrování rovnou dojít k ukončení běhu aplikace. |
public static movedPermanently( string $target_URL, array $headers = [], bool $application_end = true ): void |
Identická metoda jako redirect s tím rozdílem, že HTTP kód 301 je použit automaticky. |
public static movedTemporary( string $target_URL, array $headers = [], bool $application_end = true ): void |
Identická metoda jako redirect s tím rozdílem, že HTTP kód 302 je použit automaticky. |
public static reload( array $set_GET_params = [], array $unset_GET_params = [], ?string $set_anchor = null, bool $application_end = true ): void |
Pravděpodobně nejčastěji používaná metoda této třídy. Používá se například po odeslání formuláře (nejčastěji metodou POST) nebo obecně provedení nějaké akce. Tedy například uživatel poslal článek pomocí formuláře (metoda POST), článek je přidán a by potřebujete uživatele přesměrovat na detail (editaci) tohoto nově přidaného článku. V takové situaci budete potřebovat přesměrování (pravděpodobně) na stejnou URL s tím rozdílem, že například do GET parametrů přidáte novou hodnotu, nebo naopak z parametrů stávajících nějakou hodnotu odeberete. Ukažme si praktické příklady. Dejme tomu, že GET parametr delete má provést akci smazání článku. URL pak může být: https://some.domain/armin/articles/?delete=123 Váš kontroler vše pořeší, článek smaže a potřebuje dostat uživatel na seznam článků. Tedy na URL https://some.domain/armin/articles/. Udělá to takto:
Http_Headers::reload(unset_GET_params: ['delete']);
A druhý příklad. Byl přidán nový článek a uživatele chcete poslat rovnou na jeho editaci, tedy na URL https://some.domain/armin/articles/?id=123 To uděláte takto:
Http_Headers::reload(set_GET_params: ['id'=>$id]);
|
public static sendDownloadFileHeaders( string $file_name, string $file_mime, int $file_size, bool $force_download = false ): void |
Pokud potřebujete uživateli poslat nějaký soubor (ke stažení a podobně), tak potřebujete správně sestavit HTTP hlavičky. Tato metoda to udělá za vás. Metodu můžete použít samostatně, nebo můžete vše nechat na metodě Jet\IO_File::send(), která stačí "předhodit" soubor a o vše už se postará. |