2012-12-17 3 views
1

의 사용 CodeIgniter 2를 사용하고 있으며 CodeIgniter와 함께 제공되는 뉴스 인증 및 이온 인증을 설치했습니다. 뉴스 컨트롤러에서

는 페이지 제목에 대한 요소는 이온 인증 컨트롤러에서, 페이지 제목에 대한 요소는 다음과 같이 기록, 그러나 ...이 같은

$data['title'] = 'Page Title'; 

을 기록 ...

$this->data['title'] = 'Page Title'; 

둘 다 똑같이 잘 작동하는 것처럼 보이므로 누구나 차이점을 설명 할 수 있습니까? 아마도 Ion Auth는 CodeIgniter의 이전 버전 용으로 작성되었을 것입니까? 왜 내가 다른 것을 사용하고 싶은지 실용적인 이유가 있습니까? 필요에 따라 출처와 링크하십시오.

답변

1

나는 그것이 작가의 선호라고 생각한다. 그는 클래스 속성을 사용하여보기의 데이터를 저장하는 것을 좋아합니다. 그것은 그를 통해 방법을 통해 공유 할 수 있습니다. 저자의 다른 프로젝트 (소스 1, 2, 3)를 보면 두 가지 예가 나와 있습니다 (소스 1 & 2가 함께 표시됨).

프로젝트에서 추가로보기 데이터가있는 Auth 컨트롤러를 확장 할 수 있습니다.

class MY_Auth extends Auth { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function index() 
    { 
     $this->data['foo'] = 'bar'; 
     parent::index(); 
    } 
} 

그러면 인증보기에 $foo 변수를 사용할 수 있습니다. (이 경우 /auth/index)

내 프로젝트에서는 내보기 데이터에 보호 된 속성을 사용하고 싶습니다. 지역 변수보다 훨씬 많은 자유를줍니다. 항상 뷰의 데이터를 인수로 전달할 필요가 없으며 나중에 컨트롤러를 쉽게 확장 할 수 있습니다.

희망이 도움이됩니다.

0

$ this를 데이터 변수에 추가하면 클래스를 통해 액세스 할 수 있습니다.

$ 데이터 또는 $ this-> 데이터가 인데 "보기"로 사용 된 것은입니다. "Controller"에서 "View"로 전달되므로 "View"를 통해 해당 변수에 액세스 할 수 있습니다.

"보기"측면에는 차이가 없습니다.

+0

데이터 변수에서 $ "this"를 사용하면 "_"클래스를 통해 액세스 할 수 있습니다. 더 설명해 주시겠습니까? 나는'$ data [ 'var']'클래스에서 잘 사용된다고 생각합니다. – Sparky

+0

클래스를 통해 액세스 할 수 있다는 것은 다음과 같습니다. 함수 a()가 있고 $ this-> data [ 'page_title'] = 'Test'가 있다고합시다. 즉, $ this-> 데이터는 함수 b()에서 액세스 할 수 있습니다. 하지만 상관 없습니다. 동일한 목표를 가진 $ this-> data 또는 $ data를 사용하여 View에서 읽습니다. – Husni

1

이 $ this-> 데이터를 사용하려는 경우 클래스 메서드를 통해 $ this-> data에 액세스 할 수 있습니다. 반면에 $ 데이터를 사용하는 경우 현재 범위 나 메서드에서만 사용할 수 있으며 데이터가 필요한 경우 다른 곳에서 다른 메서드에 매개 변수로 전달해야합니다.