CI 묻고 답하기

제목 hook 제대로 작동 되지 않는 현상
카테고리 CI 2, 3
글쓴이 마음열기 작성시각 2017/04/27 10:20:51
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 17198   RSS

PHP v5.8, CI v3 이상을 사용하고 있습니다.

간단하게 말씀드리자면... hook이 제대로 작동 하지를 않습니다.

 

hooks 설정

$hook['pre_controller_constructor'][] = array(
	'class' => 'CommonClass',
	'function' => 'login_check',
	'filename' => 'CommonClass.php',
	'filepath' => 'hooks'
);

 

CommonClass 내용

class CommonClass {
	private $ci = '';

	public function __construct() {
		$this->ci =& get_instance();
		$this->ci->load->library('util');
	}

	public function login_check() {
		$ci =& get_instance();
		$ci->load->library('util');

		if ($ci->input->cookie('user_id') != '') {
			$ci->load->model('member_model', 'member', true);
			$ci->member->login_history($this->ci->input->cookie('user_id'));
		}
	}
}

위와 같습니다. 별거 없습니다. 계정이 cookie에 저장 되어 있다면 로그인 history를 쌓아 주는 것입니다.

근데 웃기는 건 hook 포인트가 'pre_controller' 이면 전혀! 아무런 반응도 없고!

'pre_controller_constructor' 로 잡으면 libray 로드 하는 부분 부터 몽땅 에러가 발생합니다.

매우 단순하고 간단한 기능인데 무엇이 문제인지 모르겠습니다.

이런 현상을 격어 보셨거나, 문제 원인을 알고 계신분의 도움이 필요합니다. ㅜㅜ

 다음글 파일 불러오기 경로 문제 질문입니다. (3)
 이전글 초보자인데 이틀째 업데이트 기능을 해결 못하고 있습니다... (9)

댓글

kaido / 2017/04/27 10:27:17 / 추천 0

http://www.ciboard.co.kr/user_guide/kr/general/hooks.html

 

pre_controller_constructor 이라는 옵션은 없는것 같습니다.

문서 참고하셔서 타이밍은 연구해 보셔야 합니다.

pre_controller 이라면 컨트롤러가 사용되기 전이고, 라이브러리들이 로드 되기 전일 수도 있겠네요.

 

개인적으로 세션 작업 후킹은 post_controller_constructor 으로 작업 합니다.

 

밑에는 제가 작성한 간단한 hook 사용법.

http://cikorea.net/bbs/view/lecture?idx=12894&page=1&view_category=&lists_style=

 

변종원(웅파) / 2017/04/27 10:34:09 / 추천 0

pre_controller로 하고 $ci->input->cookie('user_id') 를 출력해보세요.

pre_controller_constructor 는 없습니다.

한대승(불의회상) / 2017/04/27 10:56:28 / 추천 0
application/config/config.php 파일 여셔서 $config['enable_hooks'] 이 TRUE로 되어 있는지 확인해 보세요.