CodeIgniter User Guide Version 2.1.0


환경설정 클래스Config Class

환경설정클래스는 환경설정정보를 가져오거나 설정하는 방법을 제공합니다.환경설정 정보는 기본 설정파일(application/config/config.php)이나 당신이 만든 설정파일(custom config files)에서 가져올 수 있습니다..

Note: 이 클래스는 시스템에서 자동으로 초기화하므로 수동으로 할필요가 없습니다..

환경설정 파일 해부 (Anatomy of a Config File)

기본적으로 , CodeIgniter 는 하나의 주 설정파일(primary config file) 이 있으며 ,그파일은 application/config/config.php 입니다.그 파일을 열어보시면 환경설정정보가 $config배열로 세팅되어있는것을 알수 있습니다.

당신은 새로운설정정보를 이 파일에 추가할수도 있고, 별도의 파일을 만든후 거기에 추가할 수도 있습니다.별도의 파일을 사용할경우 파일을 만드신후 config 폴더에 저장하셔야합니다.

Note:만약 설정파일을 만드신다면 주 설정파일과 같이 $config 배열을 사용하여 설정항목을 추가하세요 . CodeIgniter 는 배열이름이 동일하더라도 지능적으로 충돌이 일어나지 않도록 관리합니다. (배열인덱스의 이름은 서로 다르다고 가정합니다.).

환경설정 파일 로드 Loading a Config File

Note: CodeIgniter 는 주 설정파일(application/config/config.php)을 자동으로 로드합니다.그러므로, 당신 직접만드신 설정파일이 있다면 그 파일만 로드 하시면됩니다.

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

  1. 수동 로드(Manual Loading )

    직접만드신 설정파일을 로드하려면 그파일을 필요로 하는 컨트롤러 에서 다음의 코드를 사용하여 로드합니다.:

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

    filename 는 당신의 설정파일 이름이며 .php 확장자는 붙이지 않습니다.

    여러개의 설정파일을 로드할때는 모든설정파일들이 하나의 주 설정 배열 ( master config array)로 합쳐질것입니다.서로다른파일에서라도 배열인덱스의 이름이 동일하다면, 충돌이 일어납니다. 이러한 충돌을 피하기 위해서는 두번째 파라미터를 TRUE 로 하면됩니다. 그러면, 각 설정파일은 설정파일명과 동일한 배열인덱스에 저장될것입니다.:

    // Stored in an array with this prototype: $this->config['blog_settings'] = $config
    $this->config->load('blog_settings', TRUE);

    설정 아이템 가져오기 항목을 보시면 이런방법으로 설정된 값을 어떻게 사용하는지 알수 있으실겁니다.

    아래설정은 설정파일이 존재하지않을때 발생하는 에러를 표시하지않도록 해줍니다.:

    $this->config->load('blog_settings', FALSE, TRUE);
  2. 자동로드

    만약 특정 설정파일을 글로벌하게 사용하고자한다면 그 파일을 시스템에서 자동으로 로드할수있도록 설정할 수 있습니다.application/config/autoload.php 파일을 여신후, 해당 설정파일을 추가하세요 .

설정 항목 가져오기 (Fetching Config Items)

당신의 설정파일에서 설정항목을 가져오려면 아래코드를 씁니다.:

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

item name 은 $config 배열의 인덱스입니다.예를들어 ,언어설정값을 가져오려면 아래와 같이 합니다.:

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

가져오려는 항목이 존재하지않는다면 함수는 FALSE (boolean)를 리턴합니다.

 

만약 당신이 직접추가한 설정항목들(config items)을 특정 인덱스에 넣기위해$this->config->load 함수의 두번째 파라미터를 사용하고 있다면 $this->config->item() 함수의 두번째 파라미터로 그 인덱스를 집어넣음으로써 설정값을 가져올 수 있습니다. 예:

// Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"
$this->config->load('blog_settings', TRUE);

// Retrieve a config item named site_name contained within the blog_settings array
$site_name = $this->config->item('site_name', 'blog_settings');

// An alternate way to specify the same item:
$blog_config = $this->config->item('blog_settings');
$site_name = $blog_config['site_name'];

환경설정 항목 설정Setting a Config Item

동적으로 환경설정을 하거나, 기존의 설정을 변경하려면 아래의 코드를 사용합니다.:

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

item_name 은 설정하고자 하는 $config 배열의 인덱스입니다.item_value 는 설정하고자하는 값입니다.

여러환경 설정(Environments)

현재의 환경에 따라 다른 설정 파일을 로드할 수 있습니다.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는 현재의 환경 설정 파일을 먼저로드하려고 시도합니다. 만약 파일이 존재하지 않으면 전역 설정 파일 (즉, application/config/에있는 파일)을 로드합니다.그러므로, 모든 환경설정 파일들을 새로만든 디렉토리에 복사할 필요하는 없습니다. 단지 달라지는 부분만 넣어두면 됩니다.

헬퍼 함수들 Helper Functions

환경설정 클래스는 다음의 헬퍼함수들을 포함합니다.:

$this->config->site_url();

이 함수는 사이트 URL 을 반환합니다.이때 설정파일에 지정한 인덱스( "index") 값도 함께 반환합니다.

 

$this->config->base_url();

이 메서드는 사이트의 URL을 가져옵니다.추가로 스타일 시트 및 이미지의 경로도 가져올 수 있습니다(옵션)

위의 두 메서드는 일반적으로 URL 헬퍼 의 해당 함수를 통해 액세스됩니다.

 

$this->config->system_url();

이함수는 시스템폴더( system folder) url 을 리턴합니다.