질문
Q #11647
$this->CI->session->set_userdata($user); 와 $this->session->set_userdata($user); 차이가 있나요?
건곤대나이
2014-09-27 15:10:09
ci 를 이용해서 웹프로그램을 만드는 중입니다.
ci 입문은 올해 4월달부터 입니다. 약 6개월차 되는군요 ^^;
자동 로그인 부분 구현중에 막혀서 공개된 ci 프로그램 몇가지를 보면서 작업중입니다.
그런데 어떤경우는
$this->CI->session->set_userdata($user); 를 호출하고
class Qauth {
public function __construct()
{
$this->CI =& get_instance();
// Automatically load the form helper
// Load Qauth config
$this->CI->load->config('qauth', TRUE);
// Load required library
$this->CI->load->model('member_model');
// Load Qauth language
$this->CI->lang->load('qauth');
}
function login($data)
{
전처리
$this->CI->session->set_userdata($user);
후처리
}
}
또 어떤 경우는 CI가 없이
$this->session->set_userdata($user); 를 호출하는 경우를 발견했습니다.
class Admin extends CI_Controller {
public function __construct()
{
parent::__construct();
// 생성자 코드에 기능추가
}
// if logged in, validate it.
if ($this->qauth->is_logged())
{
}
// check auto sign-in
elseif(자동로그인 조건)
{
전처리
$this->session->set_userdata($user);
후처리
}
}
********************************************************
CI가 중간에 들어간 호출과 그렇지 않은 호출의 차이가 무엇인지 궁금합니다.
그리고 어느 방식으로 사용하는것이 올바른 것인지도 알고 싶습니다.
class [Controller 이름] extends CI_Controller 이렇게 나가는 겁니다.
$this->CI->session->set_userdata($user); 에서 $this는 단순 클래스입니다. 따라서 CI 를 그냥 쓸 수 없지요. 그래서 하는 방법은 CI를 불러와야겠지요? 그 함수가 get_instance()입니다. $this->CI를 쓰기전에 $this->CI =& get_instance(); 를 사용하는 것은 그 때문이구요. 그럼 왜 $this->CI냐? 그건 엿장수 맘입니다. 이 말은 이해하지요?