CI 묻고 답하기

제목 hook 사용관련... 왜 나만 안되는듯...
글쓴이 davincl 작성시각 2014/08/28 17:11:20
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 18887   RSS
버전 문제인지는 잘 모르겟으나..

현재 다른 분들 hook 사용 할때
 
class memberSet {
	function memberLoad(){
		$CI =& get_instance();
		$CI->load->library('session');
	}
}

이렇게 하면 되어야 하는데 왜 ? 전

Call to a member function library() on a non-object in .../member.php on line 5

이런 에러 메시지만 출력되네요..

어떻게 해야 하는거죠.. 고수님덜~ 부탁합니다~
 다음글 트랜잭션 처리 완벽모드 (trans_strict) 설정... (4)
 이전글 오라클 oci8_driver.php파일에서 $_esca... (6)

댓글

한대승(불의회상) / 2014/08/28 17:45:09 / 추천 0
혹시 member.php 에 class memberSet 을 선언 하신건가요?
파일명이 member.php 면 class 이름은 Member 로 선언해야 합니다.

 
davincl / 2014/08/28 17:56:14 / 추천 0
불의회상님 말씀대로 hook/member.php 로 변경하고 소스도
 
class Member {

 function memberLoad(){
  $CI =& get_instance();
  $CI->load->library('session');
 }
}
변경했는데 동일하게 문제가 발생됩니다.

hook 파일 로드 부분은 아래와 같습니다.
$hook['pre_controller'] = array(
                                'class'    => 'member',
                                'function' => 'memberLoad',
                                'filename' => 'member.php',
                                'filepath' => 'hooks',
                                'params'   => array()
                                );

 
변종원(웅파) / 2014/08/28 18:21:10 / 추천 0
hook/member.php <-- 오타이신거죠?
hooks 이어야 하구요.
'class' => 'Member' 로 변경해보세요.
 
davincl / 2014/08/28 18:38:41 / 추천 0
웅파님 말씀대로

오타는 맞아요^_^;;;

웅파님 말씀대로 Member로 변경을 했는데도 안되네요.. 클래스랑 함수까지는 잘 불러 왔는걸로 확인 해보았습니다.

/application/hooks/member.php
<?php  if (!defined('BASEPATH')) exit('No direct script access allowed');

class Member {

 function memberload(){
  echo "a";
//  $CI =& get_instance();
///  $CI->load->library('session');
 }
}

?>
위와 같이 하니 a는 출력이 됩니다. 그러나 .. CI라이브러리를 사용할려면 없다고 나오네요..
 
기루님 / 2014/08/29 10:15:40 / 추천 0
extends ???????????
들국화 / 2014/08/29 11:58:39 / 추천 0
hook 설정 부분에 클래스 명이 Member로 대문자로 되어야 할것 같구요.
그래도 안된다면 훅시점이 문제가 아닌가 합니다. pre_controller_constructor 를 써보세요.

라이브러리를 로드할때 문제가 있는것 같네요. session이니 오토로드에 넣어도 문제가 없어 보입니다.
http://stackoverflow.com/questions/22805828/pre-controller-hook-does-not-load-base-classes-like-docs-state
davincl / 2014/08/29 12:56:20 / 추천 0
들국화님이 알려주신 링크를 타고 가니 해결책이 나와있었네요.. /system/core/Codelgniter.php
파일의 308번째줄을 훅 로드 부분위로 올리니깐 해결이 되네요~

댓글 달아주신 모든 분들 감사합니다!