CI 묻고 답하기

제목 library 만드는것에 대한 관련 질문입니다.
글쓴이 루파우스 작성시각 2014/05/21 14:30:58
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 12607   RSS
정확히는 제가 이해한 것이 맞는지 확인을 한번 받고 싶습니다.

이번에 제가 CI로 처음 작업을 하느라 이리저리 잘못 사용하고 있다가

근래에 라이브러리 문제로 오류를 겪다가 제가 잘못사용하고 있다는 것을

알게 되어 이해한 것이 맞는지 질문드립니다.

기존

1. library에서 extends CI_Controller를 하였습니다.
2. 따라서 라이브러리도 콘트롤러에 들어가는 php처럼 사용했었습니다.
    (this-> 에서 바로 load-> 같은것을 사용)
3. 그런데 콘트롤러 함수에서 library를 하나만 불렀을 때에는 문제가 안생겼는데
    두개를 호출하면서부터 문제가 발생하였습니다.
     // 문제 없음
    $this->load->library('my_lib_1');
    // my_lib_2는 계속 null로 나와 오류 발생
    $this->load->library('my_lib_1');
    $this->load->library('my_lib_2');

검색과 메뉴얼, system 폴더에 라이브러리를 살펴보니
라이브러리는 CI_Controller를 상속받지 않고
$CI =& get_instance();
를 사용해서 CI기능을 쓰더군요.

즉 간단히 이야기해서

라이브러리들은 CI_Controller를 상속받아쓰면 안되고 get_instance로만 무조건 접근해야 한다.
라는 답을 얻었는데 맞는지요.


감사합니다.
 다음글 ajax 간단한 질문 드려도 되겠습니까 (3)
 이전글 CI에서 멀티 DB 연결 질문드립니다. (3)

댓글

한대승(불의회상) / 2014/05/21 15:10:47 / 추천 0
네.. 맞습니다.
변종원(웅파) / 2014/05/21 15:35:35 / 추천 0
음.. 돌다리도 두들겨보고 건너는 것이 좋긴 합니다.
루파우스님이 사용한 예가 특정부분에서 작동 안되는 것을 확인하셨고 매뉴얼에 명시되어 있는 부분도 확인을 하셨으면 끝! ^^

시간 내셔서 매뉴얼을 정독하시는 것을 추천합니다.
루파우스 / 2014/05/21 15:39:16 / 추천 0
답변들 감사합니다!

처음에는 속도가 안나서 예전처럼 자체 php로만 짜고싶었으나
일주일정도 하고 이제 어느정도 머리에 들어오니 생산성이나
안정성이 굉장히 좋았습니다.

기존 php로만 했을때보다 속도 차이도 거의 없고 문제생길 때 확인하는건
프레임워크 도움을 받으니 좋더군요. (특히 벤치마크 기능으로 속도 튜닝)

도움 감사합니다^^