제목 | CodeIgniter 에서 PEAR 라이브러리 사용하기 | ||
---|---|---|---|
글쓴이 | 서치 | 작성시각 | 2010/05/27 01:33:22 |
|
|||
2007년 개인 블로그에 작성한 글입니다.. 퍼갈시 출처 표기 바랍니다. ------------------------- CodeIgniter 는 단 시간내에 빠른 개발 방법을 지원하는 경량급 PHP 프레임워크인데, 모든 것을 이 안에서 다 제공하다 보니 하나의 문제가 생겼다. 바로 외부에 존재하는 수 많은 라이브러리의 사용이 그것이다. 이 글은 PHP 에서 지원하는 PEAR 라이브러리를 CodeIgniter 에서 사용하는 방법을 다룬다. CodeIgniter 에서 Pear 를 사용하기 위해선 6 가지의 절차를 거쳐야 한다. 우선 config/config.php 파일을 열어서 아래처럼 바꿔준다. $config['enable_hooks'] = FALSE; ☞ $config['enable_hooks'] = TRUE 그리고 같은 디렉토리 아래 hooks.php 파일을 열어 파일의 맨 끝(PHP 선언이 끝나기 전에 있는 라인)에 다음 내용을 추가해준다. $hook['pre_controller'][] = array ( 'class' => 'Pear_hook', 'function' => 'index', 'filename' => 'pear_hook.php', 'filepath' => 'hooks' ); 이 제 hook 을 작성할 차례이다. application 아래에 hooks 디렉토리로 이동해 다음 이름으로 파일을 작성한다. 파 일 이름 : pear_hook.php <?php if ( !defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' ); class Pear_hook { function index () { // on Apache // ini_set ( 'include_path', ini_get ( 'include_path' ) . ':' . BASEPATH . 'application/web/pear/' ); ini_set ( 'include_path', ini_get ( 'include_path' ) . ':' . BASEPATH . 'application/web/pear/' ); } } ?> 여 기까지 따라왔으니 이제 3단계만 더 거치면 PEAR 를 원활하게 사용할 수 있다. application/libraries 디렉토리로 이동해 아래 파일을 작성한다. 파일 이름 : Pearloader.php <?php if ( !defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' ); class PearLoader { function load ( $package, $class, $options = null ) { require_once ( $package . '/' . $class . '.php' ); if ( strpos ( $package, '/' ) ) $package = str_replace ( '/', '_', $package ); $classname = $package . "_" . $class; if ( is_null ( $options ) ) { return new $classname (); } else { return new $classname ( $options ); } } } ?> 여 기까지가 CodeIgniter 에서 Pear 라이브러리를 사용하기 위해 준비를 한 것이다. 이제 최종 단계가 2단계 남아있는데, 따라하자. 하나는 실제 사용할 PEAR 라이브러리와 PEAR.php 파일의 복사가 필요하다. PEAR.php 파일은 PEAR 가 설치된 경로에 가면 있으니 application 디렉토리 아래 pear 라는 디렉토리를 만들어 복사하고, 실제 사용할 PEAR 라이브러리는 pear.php 에서 받아서 pear 디렉토리 아래에 넣어두면 된다. 이때 사용할 PEAR 라이브러리의 디렉토리명과 클래스명을 잘 파악해둬야 한다(물론 사용하기 위해 불러들이는 파일 하나만에 대해서다). 내 경우 Spreadsheet_Excel_Writer 라는 클래스를 사용해야 하는데, pearloader.php 에서 클래스를 동적으로 할당할 경우 다음과 같이 넘기면 $this->pearloader->load ( 'Spreadsheet/Excel', 'Writer' ); 파일은 제대로 포함하지만 클래스는 할당되지 못한다. 이런 경우를 위해 pearloader 클래스에서 동적 클래스 할당전에 약간의 트릭을 사용해서 동적할당이 가능하게 하였다. 사 용할 PEAR 라이브러리를 모두 위치했다면 이제 사용할 차례이다. PEAR 라이브러리를 사용할 Controller 나 Model 등에서 다음과 같이 사용한다. $this->load->library ( 'pearloader' ); $http_request = $this->pearloader->load('HTTP','Request'); $http_request->setURL($url); $http_request->sendRequest(); echo $http_request->getResponseBody(); 끝.. 헉헉.. 글 쓰기 힘들다. CodeIgniter 를 제대로 활용하기 위한 것도 꽤 힘들다.. |
|||
다음글 | CodeIgniter 에서 객체를 수동으로 생성해서 사... (3) | ||
이전글 | Codeigniter 에서 세션 사용하기(세션이 비정상... | ||
서치
/
2010/05/27 01:40:36 /
추천
0
|
양승현
/
2010/05/27 20:52:05 /
추천
0
유용한 정보네요.. ^^;
감사합니다. |
심한 뒷북이라면 양해 해주세여...