본문 바로가기
PHP

[PHP][코드이그나이터] 훅, 후크, 후킹

by rairen 2019. 11. 1.

안녕하세요?

 

코드이그나이터 훅에 대해서 조금 더 작성하려고 합니다.

 

 

일단 첫번째는 /application/config/config.php에서 훅을 사용할 수 있도록 설정을 변경해줍니다.

/*
|--------------------------------------------------------------------------
| Enable/Disable System Hooks
|--------------------------------------------------------------------------
|
| If you would like to use the 'hooks' feature you must enable it by
| setting this variable to TRUE (boolean).  See the user guide for details.
|
*/
//$config['enable_hooks'] = FALSE;
$config['enable_hooks'] = TRUE;

 

2번째로는 /application/config/hooks.php에서 후크처리할 설정을 잡아줍니다.

/*
| pre_system 			        시스템 작동초기입니다.벤치마크와 후킹클래스들만 로드된 상태로서, 라우팅을 비롯한 어떤 다른 프로세스도 진행되지않은 상태입니다.
| pre_controller 		        컨트롤러가 호출되기 직전입니다. 모든 기반클래스(base classes), 라우팅 그리고 보안점검이 완료된 상태입니다.
| post_controller_constructor 	컨트롤러가 인스턴스화 된 직후입니다.
                                즉 사용준비가 완료된 상태가 되겠죠.
                                하지만, 인스턴스화 된 후 메소드들이 호출되기 직전입니다.
| post_controller 		        컨트롤러가 완전히 수행된 직후입니다.
| display_override _display() 	함수를 재정의 합니다.최종적으로 브라우저에 페이지를 전송할 때 사용됩니다.
                                이로서 당신만의 표시 방법( display methodology)을사용할 수 있습니다.
                                주의 : CI 부모객체(superobject)를 $this->CI =& get_instance() 로 호출하여 사용한 후에 최종데이터 작성은 $this->CI->output->get_output() 함수를 호출하여 할 수 있습니다.
| cache_override 		        출력라이브러리(Output Library) 에 있는 _display_cache() 함수 대신 당신의 스크립트를 호출할 수 있도록 해줍니다. 이로서 당신만의 캐시 표시 메커니즘(cache display mechanism)을 적용할 수 있습니다.
| post_system 			        최종 렌더링 페이지가 브라우저로 보내진후에 호출됩니다.
 */

/**
 * filepath - 경로
 * filename - 파일
 * class - 클래스
 * function - 함수
 */

$hook['pre_controller'] = array(
        'filepath' => 'hooks',
        'filename' => 'PreController.php',
        'class'    => 'calsss',
        'function' => 'function',
);

2번 항목에서 설정을 잡아주었다면 

3번째는 설정대로 /application/hooks/폴더 안에 파일을 만들어 줍니다.

 

// 설정에서 지정한 클래스명으로 클래스 생성
class Class extends CI_Controller{
	// 설정에서 지정한 함수명으로 함수 생성
    public function Function(){

    }
}

 

이제 함수 안에서 처리될 코드를 작성하면 후크시스템이 완성됩니다.!

 

 

이것으로 훅에 대해 마치도록 하고

여러분에게도 도움이 되길 빌겠습니다.

반응형