Config 클래스

Config 클래스는 설정 기본 설정을 검색하는 수단을 제공합니다. 이 기본 설정은 기본 설정 파일(application/config/config.php) 또는 사용자 정의 설정 파일에서 가져올 수 있습니다.

참고

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

Config 클래스 사용

설정 파일 구조

기본적으로 CodeIgniter에는 application/config/config.php에 위치한 하나의 기본 설정 파일이 있습니다. 텍스트 편집기로 파일을 열면 설정 항목이 $config라는 배열에 저장되어 있음을 확인할 수 있습니다.

이 파일에 자체 설정 항목을 추가하거나, 설정 항목을 별도로 유지하려면 자체 파일을 만들어 config 폴더에 저장하세요.

참고

자체 설정 파일을 만드는 경우 기본 파일과 동일한 형식을 사용하여 항목을 $config라는 배열에 저장하세요. CodeIgniter는 이러한 파일을 지능적으로 관리하므로 배열 이름이 동일해도 충돌이 없습니다(배열 인덱스 이름이 다른 것과 동일하지 않은 경우).

설정 파일 로드

참고

CodeIgniter는 기본 설정 파일(application/config/config.php)을 자동으로 로드하므로 사용자 정의 설정 파일을 만든 경우에만 로드해야 합니다.

설정 파일을 로드하는 두 가지 방법이 있습니다:

수동 로드

사용자 정의 설정 파일 중 하나를 로드하려면 필요한 컨트롤러 내에서 다음 함수를 사용하세요:

$this->config->load('filename');

여기서 filename은 .php 파일 확장자 없이 설정 파일 이름입니다.

여러 설정 파일을 로드해야 하는 경우 일반적으로 하나의 마스터 설정 배열로 병합됩니다. 그러나 다른 설정 파일에 동일하게 명명된 배열 인덱스가 있으면 이름 충돌이 발생할 수 있습니다. 충돌을 방지하려면 두 번째 매개변수를 TRUE로 설정하면 각 설정 파일이 설정 파일 이름에 해당하는 배열 인덱스에 저장됩니다. 예시:

// 다음 프로토타입으로 배열에 저장됨: $this->config['blog_settings'] = $config
$this->config->load('blog_settings', TRUE);

이 방식으로 설정된 설정 항목을 검색하는 방법은 아래의 설정 항목 가져오기 섹션을 참조하세요.

세 번째 매개변수를 사용하면 설정 파일이 존재하지 않는 경우 오류를 억제할 수 있습니다:

$this->config->load('blog_settings', FALSE, TRUE);

자동 로드

특정 설정 파일이 전역적으로 필요한 경우 시스템에서 자동으로 로드되도록 할 수 있습니다. 이를 위해 application/config/autoload.php에 위치한 autoload.php 파일을 열고 파일에 명시된 대로 설정 파일을 추가하세요.

설정 항목 가져오기

설정 파일에서 항목을 검색하려면 다음 함수를 사용하세요:

$this->config->item('item_name');

여기서 item_name은 검색하려는 $config 배열 인덱스입니다. 예를 들어 언어 선택을 가져오려면 다음과 같이 합니다:

$lang = $this->config->item('language');

검색하려는 항목이 존재하지 않으면 함수는 NULL을 반환합니다.

설정 항목을 특정 인덱스에 할당하기 위해 $this->config->load 함수의 두 번째 매개변수를 사용하는 경우, $this->config->item() 함수의 두 번째 매개변수에 인덱스 이름을 지정하여 검색할 수 있습니다. 예시:

// blog_settings.php라는 설정 파일을 로드하고 "blog_settings"라는 인덱스에 할당
$this->config->load('blog_settings', TRUE);

// blog_settings 배열 내에 포함된 site_name이라는 설정 항목 검색
$site_name = $this->config->item('site_name', 'blog_settings');

// 동일한 항목을 지정하는 대체 방법:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];

설정 항목 변경

설정 항목을 동적으로 설정하거나 기존 항목을 변경하려면 다음을 사용하세요:

$this->config->set_item('item_name', 'item_value');

여기서 item_name은 변경하려는 $config 배열 인덱스이고, item_value는 해당 값입니다.

환경

현재 환경에 따라 다른 설정 파일을 로드할 수 있습니다. ENVIRONMENT 상수는 index.php에 정의되어 있으며, 환경 처리 섹션에 자세히 설명되어 있습니다.

환경별 설정 파일을 만들려면 application/config/{ENVIRONMENT}/{FILENAME}.php에 설정 파일을 만들거나 복사하세요.

예를 들어 프로덕션 전용 config.php를 만들려면:

  1. application/config/production/ 디렉터리를 만드세요

  2. 기존 config.php를 위 디렉터리에 복사하세요

  3. application/config/production/config.php를 편집하여 프로덕션 설정이 포함되도록 하세요

ENVIRONMENT 상수를 ‘production’으로 설정하면 새 프로덕션 전용 config.php의 설정이 로드됩니다.

다음 설정 파일을 환경별 폴더에 배치할 수 있습니다:

  • 기본 CodeIgniter 설정 파일

  • 사용자 정의 설정 파일

참고

CodeIgniter는 항상 전역 설정 파일(즉, application/config/에 있는 파일)을 먼저 로드한 다음 현재 환경에 대한 설정 파일을 로드하려고 합니다. 즉, 모든 설정 파일을 환경 폴더에 배치할 필요가 없습니다. 환경별로 변경되는 파일만 배치하면 됩니다. 또한 환경 설정 파일의 모든 설정 항목을 복사할 필요도 없습니다. 환경에 맞게 변경하려는 설정 항목만 복사하면 됩니다. 환경 폴더에 선언된 설정 항목은 항상 전역 설정 파일의 항목을 재정의합니다.

클래스 레퍼런스

class CI_Config
$config

로드된 모든 설정 값의 배열

$is_loaded

로드된 모든 설정 파일의 배열

item($item[, $index=''])
매개변수:
  • $item (string) – 설정 항목 이름

  • $index (string) – 인덱스 이름

반환:

설정 항목 값 또는 찾을 수 없으면 NULL

반환 형식:

mixed

설정 파일 항목을 가져옵니다.

set_item($item, $value)
매개변수:
  • $item (string) – 설정 항목 이름

  • $value (string) – 설정 항목 값

반환 형식:

void

설정 파일 항목을 지정된 값으로 설정합니다.

slash_item($item)
매개변수:
  • $item (string) – 설정 항목 이름

반환:

설정 항목 값과 끝에 슬래시 또는 찾을 수 없으면 NULL

반환 형식:

mixed

이 메소드는 item()과 동일하지만, 항목이 존재하면 끝에 슬래시를 추가합니다.

load([$file = ''[, $use_sections = FALSE[, $fail_gracefully = FALSE]]])
매개변수:
  • $file (string) – 설정 파일 이름

  • $use_sections (bool) – 설정 값을 자체 섹션(기본 설정 배열의 인덱스)으로 로드할지 여부

  • $fail_gracefully (bool) – FALSE를 반환할지 오류 메시지를 표시할지 여부

반환:

성공 시 TRUE, 실패 시 FALSE

반환 형식:

bool

설정 파일을 로드합니다.

site_url()
반환:

사이트 URL

반환 형식:

string

설정 파일에 지정한 “index” 값과 함께 사이트 URL을 검색합니다.

이 메소드는 일반적으로 URL 헬퍼의 해당 함수를 통해 접근합니다.

base_url()
반환:

기본 URL

반환 형식:

string

스타일시트나 이미지 같은 선택적 경로와 함께 사이트 URL을 검색합니다.

이 메소드는 일반적으로 URL 헬퍼의 해당 함수를 통해 접근합니다.