CI 코드
| 서치 | |
|---|---|
|
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 를 제대로 활용하기 위한 것도 꽤 힘들다.. |
|
| 번호 | 제 목 | 글쓴이 | 날짜 | 조회 | 추천수 |
|---|---|---|---|---|---|
| 580 | CodeIgniter SimpleXML library [0] | 타로 | 2012-02-05 | 29 | 0 |
| 577 | CI 와 Smarty 템플릿의 결합 [2] | 불의회상 | 2012-01-26 | 156 | 0 |
| 573 | Okada Design Blog 소개 [3] | 타로 | 2012-01-12 | 272 | 0 |
| 568 | woctopus 계정관리도구 [2] | milosz | 2012-01-09 | 211 | 0 |
| 566 | 업로드된 이미지 정사각형으로 썸네일 만드는 함수 [3] | 불의회상 | 2012-01-06 | 221 | 0 |
| 554 | 코드 이그나이터를 접하고 처음으로 만들어본 객체 입.. [6] | 내일은 | 2011-11-11 | 1246 | 0 |
| 528 | 모델코드 생성기 [25] | 불의회상 | 2011-10-13 | 1144 | 1 |
| 525 | ci memo + tank_auth [2] | milosz | 2011-10-04 | 943 | 0 |
| 512 | 포럼소스를 2.0.1 버전에 맞게 수정하였습니다. [2] | 탱크 | 2011-04-02 | 3546 | 2 |
| 509 | CI 메뉴얼 CHM 버전(영문 2.0) [1] | 브라이언 | 2011-03-30 | 1242 | 0 |
| 508 | CI 메뉴얼 CHM 버전 [0] | 브라이언 | 2011-03-30 | 1382 | 0 |
| 494 | ci memo [8] | pam | 2011-02-20 | 1971 | 1 |
| 489 | CI 압축 프로그램 [2] | 준이 | 2010-12-27 | 1636 | 0 |
| 482 | 듬직이님의 헬퍼 ip 부분 추가. [0] | 나이유미 | 2010-11-22 | 1998 | 0 |
| 475 | SELECT() 사용 시 문제점 [2] | 마냐 | 2010-09-16 | 2742 | 0 |
| 473 | CI의 사용자 인증 소스파일 [2] | corean | 2010-09-12 | 3142 | 0 |
| 471 | CI 1.7.2 한글 언어팩 1.1 [1] | cleansugar | 2010-08-26 | 2220 | 0 |
| 470 | Upload 라이브러리 수정본 [0] | sisco | 2010-07-28 | 2398 | 0 |
| 464 | iScaffold [4] | 준이 | 2010-07-26 | 1981 | 0 |
| 458 | 이미지 등분하기_helper [0] | 마냐 | 2010-06-18 | 2226 | 0 |

