Output 클래스

Output 클래스는 하나의 주요 기능을 갖는 코어 클래스입니다: 완성된 웹 페이지를 요청한 브라우저로 전송하는 것. 또한 해당 기능을 사용하는 경우 웹 페이지의 캐싱을 담당합니다.

참고

이 클래스는 시스템에 의해 자동으로 초기화되므로 수동으로 초기화할 필요가 없습니다.

일반적인 상황에서는 Output 클래스가 사용자의 개입 없이 투명하게 작동하므로 눈치채지 못할 것입니다. 예를 들어 Loader 클래스를 사용하여 뷰 파일을 로드하면 자동으로 Output 클래스로 전달되며, 시스템 실행이 끝날 때 CodeIgniter에 의해 자동으로 호출됩니다. 그러나 필요하다면 출력에 수동으로 개입하는 것도 가능합니다.

클래스 레퍼런스

class CI_Output
$parse_exec_vars = TRUE;

{elapsed_time} 및 {memory_usage} 의사 변수 파싱을 활성화/비활성화합니다.

CodeIgniter는 기본적으로 출력에서 이러한 토큰을 파싱합니다. 이를 비활성화하려면 컨트롤러에서 이 속성을 FALSE로 설정하세요:

$this->output->parse_exec_vars = FALSE;
set_output($output)
매개변수:
  • $output (string) – 출력으로 설정할 문자열

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

최종 출력 문자열을 수동으로 설정할 수 있습니다. 사용 예시:

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

중요

출력을 수동으로 설정하는 경우 호출하는 함수에서 마지막으로 수행되어야 합니다. 예를 들어 컨트롤러 메소드 중 하나에서 페이지를 빌드하는 경우 끝에서만 출력을 설정하세요.

set_content_type($mime_type[, $charset = NULL])
매개변수:
  • $mime_type (string) – MIME 유형 식별자 문자열

  • $charset (string) – 문자 집합

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

페이지의 MIME 유형을 설정하여 JSON 데이터, JPEG, XML 등을 쉽게 제공할 수 있습니다:

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

$this->output
        ->set_content_type('jpeg') // config/mimes.php에서 찾기 전에 점이 제거되는 ".jpeg"를 사용할 수도 있습니다
        ->set_output(file_get_contents('files/something.jpg'));

중요

이 메소드에 전달하는 비 MIME 문자열이 application/config/mimes.php에 존재하는지 확인하세요. 그렇지 않으면 효과가 없습니다.

두 번째 인수를 전달하여 문서의 문자 집합을 설정할 수도 있습니다:

$this->output->set_content_type('css', 'utf-8');
get_content_type()
반환:

Content-Type 문자열

반환 형식:

string

문자 집합 값을 제외하고 현재 사용 중인 Content-Type HTTP 헤더를 반환합니다:

$mime = $this->output->get_content_type();

참고

설정되지 않은 경우 기본 반환값은 ‘text/html’입니다.

get_header($header)
매개변수:
  • $header (string) – HTTP 헤더 이름

반환:

HTTP 응답 헤더 또는 찾지 못한 경우 NULL

반환 형식:

mixed

요청한 HTTP 헤더 값을 반환하거나 요청한 헤더가 설정되지 않은 경우 NULL을 반환합니다. 예시:

$this->output->set_content_type('text/plain', 'UTF-8');
echo $this->output->get_header('content-type');
// 출력: text/plain; charset=utf-8

참고

헤더 이름은 대소문자를 구분하지 않는 방식으로 비교됩니다.

참고

PHP의 기본 header() 함수를 통해 전송된 원시 헤더도 감지됩니다.

get_output()
반환:

출력 문자열

반환 형식:

string

출력 클래스에 저장을 위해 전송된 출력을 수동으로 가져올 수 있습니다. 사용 예시:

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

이 함수에서 데이터를 가져올 수 있는 것은 $this->load->view()와 같은 CodeIgniter 함수 중 하나에 의해 이전에 출력 클래스로 전송된 경우에만 가능합니다.

append_output($output)
매개변수:
  • $output (string) – 추가할 출력 데이터

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

출력 문자열에 데이터를 추가합니다:

$this->output->append_output($data);
set_header($header[, $replace = TRUE])
매개변수:
  • $header (string) – HTTP 응답 헤더

  • $replace (bool) – 이미 설정된 경우 이전 헤더 값을 교체할지 여부

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

최종 렌더링된 표시를 출력할 때 Output 클래스가 전송할 서버 헤더를 수동으로 설정할 수 있습니다. 예시:

$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');
set_status_header([$code = 200[, $text = '']])
매개변수:
  • $code (int) – HTTP 상태 코드

  • $text (string) – 선택적 메시지

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

서버 상태 헤더를 수동으로 설정할 수 있습니다. 예시:

$this->output->set_status_header(401);
// 헤더 설정: Unauthorized

전체 헤더 목록은 여기를 참조하세요.

참고

이 메소드는 공통 함수 set_status_header()의 별칭입니다.

enable_profiler([$val = TRUE])
매개변수:
  • $val (bool) – 프로파일러 활성화 또는 비활성화 여부

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

디버깅 및 최적화 목적으로 페이지 하단에 벤치마크 및 기타 데이터를 표시하는 프로파일러를 활성화/비활성화할 수 있습니다.

프로파일러를 활성화하려면 컨트롤러 메소드 내 어디에든 다음 줄을 추가하세요:

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

활성화되면 보고서가 생성되어 페이지 하단에 삽입됩니다.

프로파일러를 비활성화하려면 다음을 사용합니다:

$this->output->enable_profiler(FALSE);
set_profiler_sections($sections)
매개변수:
  • $sections (array) – 프로파일러 섹션

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

프로파일러가 활성화된 경우 특정 섹션을 활성화/비활성화할 수 있습니다. 자세한 내용은 프로파일러 문서를 참조하세요.

cache($time)
매개변수:
  • $time (int) – 분 단위 캐시 만료 시간

반환:

CI_Output 인스턴스 (메소드 체이닝)

반환 형식:

CI_Output

지정된 분 동안 현재 페이지를 캐시합니다.

자세한 내용은 캐싱 문서를 참조하세요.

_display([$output = NULL])
매개변수:
  • $output (string) – 출력 데이터 재정의

반환:

void

반환 형식:

void

서버 헤더와 함께 완성된 출력 데이터를 브라우저로 전송합니다. 또한 벤치마크 타이머를 중지합니다.

참고

이 메소드는 스크립트 실행이 끝날 때 자동으로 호출되므로 코드에서 exit() 또는 die()를 사용하여 스크립트 실행을 중단하는 경우가 아니면 수동으로 호출할 필요가 없습니다.

예시:

$response = array('status' => 'OK');

$this->output
        ->set_status_header(200)
        ->set_content_type('application/json', 'utf-8')
        ->set_output(json_encode($response, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES))
        ->_display();
exit;

참고

스크립트 실행을 중단하지 않고 이 메소드를 수동으로 호출하면 중복 출력이 발생합니다.