CI 묻고 답하기

제목 나만의 라이브러리에 관해 초보질문 드립니다.
글쓴이 반벽이 작성시각 2015/11/16 09:05:07
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 14011   RSS
$this->load->library('userlib');

컨트롤러의 부모 클래스 안에 요런식으로 라이브러리를 호출할때,  해당 라이브러리는 
컨트롤러가 호출될때마다 로드가 되는건가요? 아니면 한번 호출되었으면 재사용이 되는 건가요?

전역적으로 쓰이는 공통정보등(자주 변하지 않는 정보로 DB에서 최초에 한번 조회를 하고, 특정 페이지에서만 부분적으로 재조회하여 변수를 갱신하려 합니다..)을 담아두고 쓰려는 목적으로 사용자 라이브러리를 만들어 보려하는데
이 방법이 올바른 방법인지 궁금합니다.

제가 C/S프로그램에 익숙해져 있다보니.. 헛갈리니는 부분이 참 많습니다.. ㅜㅜ;
고수님들 도와주세요~
 
 다음글 세션이 끊어지는데 조언 한번 주십시오. (6)
 이전글 smtp 설정 관련 (1)

댓글

kaido / 2015/11/16 09:29:10 / 추천 0
호출된 위치에 따라서 다릅니다.

auto_load 에 넣으면 전 페이지에 로드가 이루어 지고

컨트롤러의 생성영역에 넣으면 해당 컨트롤러의 모든 페이지에 로드가 되고

페이지에 로드를 하면 해당 페이지에서만 로드가 이루어집니다.
function Api() {
class Api extends CI_Controller {
  parent::__construct();

  $this->load->library('encryption'); //api 컨트롤러 전 페이지 로드
}

function test(){
     $this->load->library('encryption'); //api test 페이지에만 로드
}

function tow(){
//2개 이상 동일한 헬퍼나 라이브러리를 로드시 한개만 로드함.
 $this->load->library('encryption'); 
 $this->load->library('encryption'); 
//1개만 적용됨
}

}


 
kaido / 2015/11/16 09:32:13 / 추천 0
로드라는 클래스가 include 개념이긴 한데 조금더 상위 개념의 include 라고 생각 하시면 편합니다.

결론적으로 페이지가 로드 될때마다 참조를 한다는 이야기가 됩니다.

또한 ci의 헬퍼와 라이브러리를 최대한 다 로드 해도 메모리 사용량이 그다지 높지 않습니다.

이걸 로드를 걸어야 하나 말아야 하나 고민을 하실 시간에 그냥 로드 하고 다른 로직을 생각 하시는게 정신건강에 좋습니다.