본문 바로가기
FrameWork/CodeIgniter

자신만의 라이브러리 만들기

by 백룡화검 2008. 6. 30.

- 라이브러리 만들기

  우리는 보통 라이브러리를 사용할때 CodeIgniter에서 제공하는 라이브러리만 사용해왔습니다...
   하지만 자신만의 라이브러리를 만들어서 CodeIgniter 에서 사용할수 있습니다..
   대부분 application/libraries 폴더안에 라이브러리 파일을 만들게 됩니다..

   CodeIgniter는 당신의 라이브러리에서 CodeIgniter 라이브러리를 확장하는것을 허용합니다.

   요약하겠습니다..
     *당신은 새로운 라이브러리를 완벽하게 만들수 있습니다.
     *당신은 CodeIgniter 라이브러리를 확장할수 있습니다.
     *당신은 CodeIgniter 라이브러리를 교체할수 있습니다..

   이제 하나하나 자세히 알아보겠습니다..

      Note: 데이터베이스 클래스는 당신이 만드는 클래스에서 확장되거나 교체될수 없습니다..
             메인 Controller 클래스도 안됩니다..
             그외 모든 다른 클래스들은 교체되거나 확장되는것이 가능합니다...

- 저장소
   당신의 라이브러리 클래스들은 당신의 application/libraries 폴더에 위치해야 합니다.
   CodeIgniter 는 가장먼저 이곳을 찾게 됩니다..

- 이름짓기 규칙
   *파일 이름은 대문자로 시작되야 합니다. 예를 들면 Myclass.php
   *클래스 선언은 대문자로 시작해야 합니다. 예를 들면 class Myclass
   *클래스 이름과 파일이름은 같아야 합니다.

- The Class File (클래스 파일)
   클래스들은 이 기본적인 프로토타입을 가져야 합니다. (노트: 우리는 예제에서 Someclass 이름으로 사용했습니다.)

------------------------------------------------------------------------------------
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class Someclass {

      function some_function()
      {
      }
}

    ?>
------------------------------------------------------------------------------------

- 당신의 클래스 사용하기
  위의 내용을 따라하면서 당신의 클래스를 만들었다면 이제 사용하기 위해서 초기화를 시켜줘야 합니다...
  방법은 다른 라이브러리 초기화하는것과 똑같습니다...
  당신의 Controller클래스의 생성자에
             $this->load->library('someclass');
   이 코드를 넣어주면 됩니다...
   someclass를 파일로 만들려면 끝에 .php만 붙여주면 되겠죠..   someclass.php
   파일이름은 대소문자 구별안합니다.

   한번 로드되면 당신은 당신의 클래스에 접속할수 있습니다...  소문자를 사용해도 됩니다...
     $this->someclass->some_function();    // 항상 객체경우는 소문자일 것입니다.

- 당신의 클래스가 초기화될때 파라미터 보내기

   라이브러리 로딩 함수에서 당신은 두번째 파라미터로 데이터를 보낼수 있고 그것은 당신의 클래스 생성자로 보낼것이다.
------------------------------------------------------------------------------------ 

       $params = array('type' => 'large', 'color' => 'red');

$this->load->library('Someclass', $params);     // 단지 두번째 파라미터에 데이터를 보냈네요..

------------------------------------------------------------------------------------

  만약 이방법을  사용한다면 당신은 당신의 클래스 생성자를 데이터를 받을수 있도록 설정해줘야 합니다.

------------------------------------------------------------------------------------
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

      function Someclass($params)
      {
          // $params 를 이용해서 무언가 합니다.
      }
}

    ?>

------------------------------------------------------------------------------------

번역 난해한곳(나중에 수정하겠습니다.)
  당신은 또 config file 에서 저장된 파라미터를 보낼수 있습니다.   이름은 존재하는 클래스파일이름으로 config file을 간단하게 만들고
  당신의 application/config/ 폴더에 그것을 저장합니다. 노트: 만약 당신이 파라미터를 바로 보내겠다면 위에서 설명했던것처럼
  config file 옵션은 이용될수 없을겁니다.

[출처] 자신만의 라이브러리 만들기|작성자 행복나눔