CI 묻고 답하기

제목 클래스 생성자 문의
카테고리 CI 2, 3
글쓴이 요시 작성시각 2018/02/20 11:44:08
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 16120   RSS

class User_C extends CI_Controller {   

     public function __construct(){       

            parent::__construct();       

            $this->load->model('item_m','product');   

=======================

제가 클래스 생성자 아얘 개념이 없습니다 ㅜㅜ

유투브로에서 외국인 강의를 따라하는데 동남아어를 사용하니 뭐라하는지 모르겠습니다 ㅋㅋ;;;

$this->load->model()에 두개가 들어가면 저게  정확히 뭐를 의미하는건가요?

대충 강의 진행상 제가 느낀 바로는

item_m 모델을 복사해서 이름만 product로 명칭해서 쓰는 것 같은데 이게 맞나요?

현 단계까지는 'item_m 모델에다가 작성했고, product 모델은 갑자기 튀어나왓습니다.

 

 

 

 다음글 controller 백그라운드 진행 (2)
 이전글 Cent OS 환경에서 CI 설치하고 web 접속시 S... (2)

댓글

한대승(불의회상) / 2018/02/20 13:07:57 / 추천 1

예상하신대로 입니다.

모델에 관한 자세한 설명을 아래 메뉴얼을 참고하세요.

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

kaido / 2018/02/20 13:54:42 / 추천 1

CI 룰을 이해 하시는것도 좋지만, 먼저 클래스에 대한 기본적인 사용법을 익혀두시는 것이 좋을것으로 보입니다.

CI는 loder 이라는 클래스가 중간에서 어떤 작업을 하기 때문에 같이 병행해서 보시면 헷깔리실수 있습니다.

CI 사용법만 철저하게 파고 들고 나서 기본을 다시 보시는것과,  기본을 약간 익히고 나서 CI core를 파보시는 방법이 있습니다.

 

방향성이 차이지 결국 도착점은 같으니 어느쪽을 먼저 택할지는 선택의 차이라고 보여집니다.

 

추천으로는 역시 기본기를 조금 다지는것이 좋다고 생각 합니다 ㅎㅎ

 

PS. 해당 구문을 간단히 설명 하면... 클래스는 생성자를 가장 먼저 불러옵니다. 클래스 = 생성자 생성 이라고 보시면 됩니다.

생성자를 생략해도 자체적으로 디폴트 생성자를 생성 합니다.

생성자는 시작과 동시에 로드가 되니, 시작과 동시에 사용할 객체를 로드해 둔것입니다.

CI 모델을 사용하겠다는 의미 이며, CI 모델 객체 안에는 첫번째 인자 값에 해당하는 모델 파일을 찾는 부분이 있습니다.

그리고 2번째 인자 값으로 생성할 객체 명을 바꾸는 옵션이 있습니다.

 

결과적으로 컨트롤러 로드 하면서 생성자 에서 로더를 통해서 모델을 로드.

모델에서는 인자값으로 받아가는 파일을 클래스로 받아가서 생성.

생성된 객체는 생성자 안에 있지만, $this 키워드에 의해서 접근 가능해 진것 입니다.

[정확히는 loder에 의해 생성되어서 loder에 있다고 보면 되지만, 엄밀히 따지면 클래스 자체가 메모리에 로드되어 있는 상태입니다.]

 

아... 아마 맞을 겁니다 ㅎㅎ... [저도 코어 안본지 오래되서...]

 

무엇이 적재되어 있는지 궁금하시면 이런 신기한 함수도 있습니다. 로드되어있는 클래스명을 전부 알려줍니다.

print_r(get_declared_classes());

요시 / 2018/02/20 16:00:14 / 추천 0

와 링크해주신 설명서에 잘 나오네요 ㅎㅎ 

===================

해부학적(?)으로 설명해주셔서 감사합니다ㅎㅎㅎ

로드되는 경로들을 알면 코딩할 때 큰 도움이 될 것 같네요~!

아직 초딩수준이라 갈길이 멀게 느껴지는데 당장 print_r(get_declared_classes()); 부터 시작해보겠습니다 

감사합니다