제목 | 심플하게 hook 사용 방법 | ||
---|---|---|---|
글쓴이 | kaido | 작성시각 | 2016/02/12 13:53:49 |
|
|||
※ 이 강좌는 CI 3.x 버전을 기준으로 작성 하였습니다.
우선 application/config/hooks.php 파일을 오픈 설정에
$hook['post_controller_constructor'] = array( 'class' => 'Header_init', 'function' => 'inits', 'filename' => 'Header_init.php', 'filepath' => 'hooks' );
class 명은 파일을 따라갑니다. [부여 설명은 생략 하겠습니다.] function 은 해당 파일에서 사용할 함수 입니다. filename 은 해당 파일명입니다. filepath 는 저장된 폴더 명입니다. [딱히 이유가 없다면 변경 하지 마세요.]
$hook[''] <-- 여기에는 종류별로 존재 합니다. pre_system, pre_controller, post_controller_constructor, post_controller, display_override, cache_override, post_system
이렇게 종류별로 있습니다. 요점은 타이밍의 차이입니다. 컨트롤러를 불러오기 전이냐. 불러오고 난 다음이나, 포스트를 하고 난 다음이냐, 캐쉬를 하고 난 다음이냐 기타 등등. 자세한 차이점은 구글링!
이제 application/hooks/ 폴더로 가서 파일명과 동일한 파일을 생성 합니다. [Header_init.php 이라고 명시 했으니 동일하게 만듭니다.]
파일 안에는 이렇게 넣습니다.
class Header_init { private $CI; function __construct() { $this->CI =& get_instance(); if(!isset($this->CI->session)){ //Check if session lib is loaded or not $this->CI->load->library('session'); //If not loaded, then load it here } } public function inits(){ $CI =& get_instance(); $CI->load->library('session'); //렛츠 원하는 대로 즐프~ } }
끗. 참 쉽죠?
ps CI 컨트롤러의 기본기능을 사용 하실분은 class Header_init extends CI_Controller {} 이렇게 선언 하고 사용. 다만 문제가 발생 할 수 있으니 컨트롤러의 기능이 필요치 않으신 분들은 extends CI_Controller 상속 부분은 제거 하고 사용하세요. |
|||
다음글 | [ci 드라이버] 한국 pg(결제) 드라이버 만들기 (... (4) | ||
이전글 | [ci 수정] 일반 PHP 프로젝트에 CI 적용하기 2 (2) | ||
마PD
/
2016/02/12 14:15:17 /
추천
0
|
라이트에센스
/
2016/02/17 12:45:33 /
추천
0
마침 hook 보고 있었는데 깔끔하게 올려주셨네요! 감사합니다~!
|
쌈닭
/
2016/02/17 18:38:30 /
추천
0
config.php $config['enable_hooks'] = TRUE; 혹시 깜빡하실까봐...^^; |
오오오~~~!!!
감사합니다! 많이 헷갈렸는데
이젠 쓸 수 있어요 ㅜ.ㅜ