2010-05-12 2 views

답변

52

좋아, CodeIgniter의 모든 내용은 슈퍼 매직 $this 변수를 통해 실행됩니다. $this은 기본적으로 현재 클래스를 정의하므로 클래스에만 적용됩니다.

컨트롤러 클래스, 그래서 $이, 당신은 또한 클래스를 사용하면 모델에서 $this->load->model('whatever');

할 수있다. $this에는 모델에서 확장 할 때 유용한 자료 만 포함되어 있기 때문에 약간 다릅니다. 여전히 $this이 유효합니다.

도우미 나 라이브러리를 사용하는 경우 "인스턴스"또는 $this을 찾아야합니다.

$ci =& get_instance(); 

은 ... $ci 당신이 그것을 상속 클래스에서 클래스에없는, 여부에도 불구하고, $this과 동일한 재료/코드/유용성을 포함한다.

2 파인트 이후의 초보자를위한 설명이므로 잘못되었거나 옳은 것 같습니다. ;-)

+2

2 파인트, 응? 그렇다면 도서관/도우미의 유용성은 무엇입니까? 왜 그냥 모델을 사용하지 않는가? –

+2

물론 모든 것이 PHP 클래스이므로 원하는 모든 것을 넣을 수 있습니다. 일반적으로 CodeIgniter에서 말하는 "데이터베이스 상호 작용/비즈니스 로직"= 모델, 간단한 함수는 헬퍼, 일반 클래스는 라이브러리입니다. –

10

구현은 singleton pattern입니다. 본질적으로 문제의 클래스는 하나 뿐이며 전 세계적으로 액세스 할 수 있도록 설계되었습니다. get_instance 메서드는 정적이므로 코드의 아무 곳에서나 인스턴스에 액세스 할 수있는 방법을 제공합니다.

+1

충분하지 않습니다. 나는 슈퍼 노부 야! :) –

+5

@ Kevin :이 경우에는 객체 지향 프로그래밍 (OOP)에 대한 기사를 읽기 전에 먼저 해당 객체에 의존하는 프레임 워크를 탐색하는 것이 좋습니다. –

+2

윌, 윌 !! –

관련 문제