Podręcznik użytkownika CodeIgniter wersja 2.2.1


Klasa Output

Klasa Output jest małą klasą, która spełnia jedną podstawową funkcję: wysyła gotową stronę internetową do przeglądarki. Jest również odpowiedzialna za cache'owanie stron, jeśli korzystasz z takiej możliwości.

Uwaga: Ta klasa jest ładowana automatycznie przez system, dlatego nie musisz tego robić samodzielnie.

W normalnych okolicznościach nawet nie zauważysz klasy Output, dlatego że działa ona transparentnie bez Twojej pomocy. Dla przykładu, jeśli używasz klasy Loader aby załadować plik widoku, jest ona automatycznie przypisywana do klasy Output, która zostanie wywołana automatycznie w momencie gdy CodeIgniter zakończy działanie. Jest jednak możliwe ręczne manipulowanie "wyjściem", jeśli tego potrzebujesz. Możesz to zrobić za pośrednictwem tych dwóch funkcji:

$this->output->set_output();

Pozwala na samodzielne ustawienie finalnie zwracanego ciągu. Przykład użycia:

$this->output->set_output($data);

Ważne: Jeśli ustawisz "wyjście" samodzielnie, to funkcja ta musi zostać wywołana jako ostatnia w danej metodzie. Dla przykładu, jeśli budujesz stronę w jednej z metod swojego kontrolera, nie ustawiaj "wyjścia" do samego końca.

$this->output->set_content_type();

Pozwala na ustawienie typu mime Twojej strony, tak abyś mógł serwować w łatwy sposób dane JSON, XML, JPEG itp.

$this->output
    ->set_content_type('application/json')
    ->set_output(json_encode(array('foo' => 'bar')));

$this->output
    ->set_content_type('jpeg') // Możesz także użyć ".jpeg", z którego zostanie usunięta kropka przed sprawdzeniem tablicy w config/mimes.php
    ->set_output(file_get_contents('files/something.jpg'));

Ważne: Upewnij się, że ciągi które nie są typami mime, znajdują się w pliku config/mimes.php, w innym przypadku takie ustawienie nie odniesie żadnego efektu.

$this->output->get_output();

Pozwala na samodzielne pobranie każdych danych "wyjściowych", które zostały wysłane do przechowywania w klasie Output. Przykład użycia:

$string = $this->output->get_output();

Zauważ, że dane będą mogły zostać zwrócone z tej funkcji tylko wtedy, gdy zostały wcześniej wysłane do klasy Output poprzez funkcję CodeIgnitera, taką jak $this->load->view().

$this->output->append_output();

Dołącza dane do ciągu "wyjściowego". Przykład użycia:

$this->output->append_output($data);

$this->output->set_header();

Pozwala na samodzielne ustawienie nagłówków serwerowych, które zwróci klasa Output podczas wyświetlania ostatecznych danych. Przykład:

$this->output->set_header("HTTP/1.0 200 OK");
$this->output->set_header("HTTP/1.1 200 OK");
$this->output->set_header('Last-Modified: '.gmdate('D, d M Y H:i:s', $last_update).' GMT');
$this->output->set_header("Cache-Control: no-store, no-cache, must-revalidate");
$this->output->set_header("Cache-Control: post-check=0, pre-check=0");
$this->output->set_header("Pragma: no-cache");

$this->output->set_status_header(code, 'text');

Pozwala na samodzielne ustawienie nagłówku statusu serwera. Przykład:

$this->output->set_status_header('401');
// Ustawia nagłówek na: Unauthorized

Tutaj możesz zobaczyć pełną listę dostępnych nagłówków.

$this->output->enable_profiler();

Pozwala na włączenie/wyłączenie profilera, który będzie wyśwetlał benchmarki oraz inne dane na dole Twojej strony. Ma to ułatwić debuggowanie oraz optymalizację.

Aby włączyć profiler umieść następującą funkcję gdziekolwiek, w metodzie Twojego kontrolera:

$this->output->enable_profiler(TRUE);

Po włączeniu, zostanie wygenerowany raport i umieszczony na dole Twojej strony.

Aby wyłaczyć profiler, możesz użyć:

$this->output->enable_profiler(FALSE);

$this->output->set_profiler_sections();

Pozwala na włączenie/wyłączenie określonej sekcji profilera, kiedy jest on właczony. Po więcej informacji, proszę zajrzeć do rozdziału o profilowaniu aplikacji.

$this->output->cache();

Biblioteka Output jest również odpowiedzialna za kontrolowanie cache'owania. Po więcej informacji , proszę zajrzeć do rozdziału o cache'owaniu.

Parsowanie zmiennych wykonawczych

Domyślnie CodeIgniter parsuje pseudo-zmienne {elapsed_time} i {memory_usage}. Aby wyłączyć tę opcję, ustaw w swoim kontrolerze właściwość klasy $parse_exec_vars na wartość FALSE. $this->output->parse_exec_vars = FALSE;