CodeIgniter User Guide Version 1.7.2


로더 Loader Class

로더는 이름처럼 각 요소를 로드하는데 사용합니다. 요소는 라이브러리(클래스)일수도 있고 뷰파일, 헬퍼, 플러그인, 혹은 여러분이 만든파일일수도 있습니다.

참고: 이 클래스는 자동으로 초기화 됩니다.

아래함수들이 이 클래스에서 사용가능합니다:

$this->load->library('class_name')

이함수는 핵심( core)클래스를 로드하기위해서 사용합니다. class_name 은 로드하고자하는 클래스의 이름입니다. 참고: 우리는 "class" 와 "library" 교대로 사용합니다.

예를들어, 만약 CodeIgniter를 이용하여 이메일을보내고자 한다면 , 먼저 컨트롤러에서 이메일 클래스를 로드합니다:

$this->load->library('email');

일단 로드되면, 라이브러리는 사용가능상태가 되고, $this->email->some_function()와 같이 사용합니다.

라이브러리파일은 "libraries" 폴더의 하위디렉토리에 저장될수 있으며, 여러분의 개인적인 application/libraries 폴더에 저장될수도 있습니다. 하위디렉토리에 저장된 파일을 로드하려면, "libraries"폴더로부터의 상대경로를 포함시키면 됩니다. 예를들어 , 다음위치에 파일이 있다면:

libraries/flavors/chocolate.php

다음과 같이 로드합니다:

$this->load->library('flavors/chocolate');

여러분은 얼마든지 원하는만큼 깊이에 있는 하위디렉토리에서 파일을 불러올 수 있습니다.

옵션 설정 Setting options

두번째 파라미터는 선택적으로 설정정보를 넘겨줄 수 있습니다. 일반적으로 아래와 같이 배열을 넘겨줍니다:

$config = array (
                  'mailtype' => 'html',
                  'charset'  => 'utf-8,
                  'priority' => '1'
               );

$this->load->library('email', $config);

설정옵션은 통상 설정파일을 통해 설정할 수 있습니다. 각 라이브러리페이지에는 상세한 정보가 기술되어있으니 , 사용하고자하는 부분에대한정보는 그곳을 참고해주세요.

라이브러리를 다른 객체이름으로 할당하기 Assigning a Library to a different object name

세번째 파라미터가 비어있다면, 라이브러리는 통상 객체에 라이브러리와 같은 이름을 할당합니다. 예를들어, 라이브러리 이름이 Session이라면 변수명을$this->session로 할당합니다.

만약 다른클래스이름으로 사용하고싶다면 세번째 파라미터로 넘기시면 됩니다:

$this->load->library('session', '', 'my_session');

// Session class is now accessed using:

$this->my_session

$this->load->view('file_name', $data, true/false)

이 함수는 뷰파일을 로드합니다. 만약 뷰(Views) 섹션을 읽지않으셨다면, 먼저 읽어주세요 . 이함수가 일반적으로 어떻게 쓰이는지 알 수 있습니다.

첫번째 파라미터는 꼭 필요합니다 . 로드하고자하는 뷰파일의 이름이기 때문입니다. 참고: .php 가 아닌 다른 파일을 사용하는경우가 아니라면 .php를 적어주실필요가 없습니다.

선택적으로 사용하는 두번째 파라미터는 연관배열이나, 객체를 입력받으며,PHP extract 함수를 이용하여 뷰파일에서 사용가능한 변수로 변환합니다.

선택적으로 사용하는 세번째 파라미터는 함수의 기능을 변경하여 문자열을 브라우저로 보내는대신 리턴하게 합니다. 특정한 방법으로 데이터를 처리하고자하는 경우 유용합니다.파라미터를true 로 설정하면 데이터를 리턴합니다. 기본설정은false이며 데이터를 브라우저로 전송합니다. 데이터를 리턴받을때는 아래와같이 변수에 할당해야합니다:

$string = $this->load->view('myfile', '', true);

$this->load->model('Model_name');

$this->load->model('Model_name');

모델이 하위디렉토리에 존재한다면 모델폴더로부터의 상대경로를 적어주세요. 예를들어, 모델이 application/models/blog/queries.php 에 있다면 ,다음과같이 합니다:

$this->load->model('blog/queries');

모델에 다른 객체이름을 할당하고싶다면 두번째 파라미터로 넘겨주시면 됩니다:

$this->load->model('Model_name', 'fubar');

$this->fubar->function();

$this->load->database('options', true/false)

이함수는 데이터베이스 클래스를 로드합니다. 두개의 파라미터는 선택적(optional)으로 사용합니다. 더 자세한정보는 데이터베이스(database) 섹션을 참고하세요.

$this->load->scaffolding('table_name')

이함수는 스케폴드를 사용할 수 있도록 합니다. 스케폴드(scaffolding) 섹션에 더 자세한 정보가 있습니다.

$this->load->vars($array)

이 함수는 연관배열을 입력받아 PHP extract 함수를 통해 변수를 생성합니다. 이 함수는 위의 $this->load->view() 함수에서 두번째 파라미터를 사용한 경우와 같은 결과를 보여줍니다. 만약 컨트롤러의 생성자에서 전역변수를 설정하여 모든함수에서 로드한 뷰에 모두 사용할수 있도록 하려면 이함수를 사용합니다. 이함수를 여러번 호출할 수도 있습니다. 데이터는 캐시되고 합쳐져서 하나의 배열이 된 다음 변수로 변환됩니다.

$this->load->helper('file_name')

이함수는 헬퍼를 로드합니다.file_name_helper.php 를 제외한 파일이름 입니다.

$this->load->plugin('file_name')

이함수는 플러그인을 로드합니다, file_name_plugin.php 를 제외한 파일이름 입니다.

$this->load->file('filepath/filename', true/false)

이 함수는 일반적인 파일 로딩 함수입니다. 첫번째 파라미터로 파일경로와 이름을 입력하면 해당파일을 연다음 읽습니다. 기본값으로 , 뷰파일처럼 데이터를 브라우저로 보냅니다. 두번째 파라미터를 true 로 설정하면 데이터를 문자열로 리턴합니다.

$this->load->lang('file_name')

이함수는 언어로딩함수(language loading function)의 별칭( alias) 입니다 :$this->lang->load()

$this->load->config('file_name')

이함수는 설정로딩함수(config file loading function)의 별칭( alias) 입니다: $this->config->load()