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 인스턴스 (메소드 체이닝)
- 반환 형식:
최종 출력 문자열을 수동으로 설정할 수 있습니다. 사용 예시:
$this->output->set_output($data);
중요
출력을 수동으로 설정하는 경우 호출하는 함수에서 마지막으로 수행되어야 합니다. 예를 들어 컨트롤러 메소드 중 하나에서 페이지를 빌드하는 경우 끝에서만 출력을 설정하세요.
- set_content_type($mime_type[, $charset = NULL])¶
- 매개변수:
$mime_type (
string) – MIME 유형 식별자 문자열$charset (
string) – 문자 집합
- 반환:
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 인스턴스 (메소드 체이닝)
- 반환 형식:
출력 문자열에 데이터를 추가합니다:
$this->output->append_output($data);
- set_header($header[, $replace = TRUE])¶
- 매개변수:
$header (
string) – HTTP 응답 헤더$replace (
bool) – 이미 설정된 경우 이전 헤더 값을 교체할지 여부
- 반환:
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 인스턴스 (메소드 체이닝)
- 반환 형식:
서버 상태 헤더를 수동으로 설정할 수 있습니다. 예시:
$this->output->set_status_header(401); // 헤더 설정: Unauthorized
전체 헤더 목록은 여기를 참조하세요.
참고
이 메소드는 공통 함수
set_status_header()의 별칭입니다.
- enable_profiler([$val = TRUE])¶
- 매개변수:
$val (
bool) – 프로파일러 활성화 또는 비활성화 여부
- 반환:
CI_Output 인스턴스 (메소드 체이닝)
- 반환 형식:
디버깅 및 최적화 목적으로 페이지 하단에 벤치마크 및 기타 데이터를 표시하는 프로파일러를 활성화/비활성화할 수 있습니다.
프로파일러를 활성화하려면 컨트롤러 메소드 내 어디에든 다음 줄을 추가하세요:
$this->output->enable_profiler(TRUE);
활성화되면 보고서가 생성되어 페이지 하단에 삽입됩니다.
프로파일러를 비활성화하려면 다음을 사용합니다:
$this->output->enable_profiler(FALSE);
- set_profiler_sections($sections)¶
- 매개변수:
$sections (
array) – 프로파일러 섹션
- 반환:
CI_Output 인스턴스 (메소드 체이닝)
- 반환 형식:
프로파일러가 활성화된 경우 특정 섹션을 활성화/비활성화할 수 있습니다. 자세한 내용은 프로파일러 문서를 참조하세요.
- cache($time)¶
- 매개변수:
$time (
int) – 분 단위 캐시 만료 시간
- 반환:
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;
참고
스크립트 실행을 중단하지 않고 이 메소드를 수동으로 호출하면 중복 출력이 발생합니다.