CI 묻고 답하기

제목 웅파님 다시 질문 드립니다.
글쓴이 쿨교 작성시각 2013/04/04 14:55:19
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 14558   RSS
위젯은 사실 기존에 있는 메서드를 위젯으로 따로 만들어야하는 번거로움이 있어서

웅파님께서 말씀하신 그 메소드를 json으로 결과를 반환하는 api형태로 구성하여 사용하려고하는데요.


static 메서드라면
include 'cart.php';     // class file
echo cart::getTodayCartCount();

컨트롤러::메서드 이렇게 사용할수 있던데요.

include를 써야하는 것도 쪼매 걸리고 해서 그런데 이렇게 말고 더 좋은 방법이 없을까요?


///////////////////////////////////////////////////////

안녕하세요.

컨트롤러에서 다른 컨트롤러 접근하는 것을 widget 으로 사용한다는 것을 검색을 통해서 알았는데요.

예를 들어서 

user 컨트롤러가 있고 cart 컨트롤러가 있다면

user 에서 cart 컨트롤러의 장바구니의 데이터를 받아오고 싶은데요.

이럴때도 역시 widget으로 접근해도 되는건가요?


 다음글 초보적인 질문 하나만 할께요 ㅠ (6)
 이전글 안녕하세요. 컨트롤러에서 다른 컨트롤러... (4)

댓글

변종원(웅파) / 2013/04/04 15:01:53 / 추천 0
cart.php가 클래스라면 application/libraries 디렉토리에 넣고
로딩하여 사용할 수 있습니다. (사용법은 ci library와 동일)
http://cikorea.net/user_guide_2.1.0/general/creating_libraries.html

라이브러리 로딩하고 cart::getTodayCartCount() 형태로도 쓸 수 있고 
$this->cart_class_name->getTodayCartCount() 형태로 쓸수도 있습니다.
쿨교 / 2013/04/04 15:20:41 / 추천 0
 넵.. 웅파님 답변 감사합니다.

문제는 cart 가 라이브러리 형태가 아니라

다른 곳에서도 API 처럼 사용되기 때문에 도메인으로도 접근이 가능해야합니다. -_-;;

http://도메인/cart/getTodayCartCount

요런 식으로 말이죠.ㅎ


지훈임돠 / 2013/04/04 15:51:26 / 추천 0
여기서 말씀하시는 widget 이 모죠??

CI_Controller 를 상속한 라이브러리를 하나 만들고,

그 라이브러리를 상속한 콘트롤러를 만들면 되지 않을까요..?


한대승(불의회상) / 2013/04/04 17:35:12 / 추천 0
음.. ^^ 답을 가지고 계신거 같은데요.

이렇게 함 해보세요.
include 'cart.php';     // class file

class Test_con extends CI_Controller {
  function index() {
     echo cart::getTodayCartCount();
  }
}

쿨교 / 2013/04/05 09:10:51 / 추천 0
 지훈임돠님 답변 감사합니다.

네 상속해서 사용은 가능하지만 프로세스상 수직(자식, 부모) 관계 보다는 수평관계로 해야 해서요.

위젯은 저도 정확히 써보지 않아서 잘 모르겠는데요.

자주 쓰이는 것들을 컴포넌트 처럼 구성해서 갖다 쓰게 하는 것 같아요. (최신글이라던가..)


불의회상님 답변 감사합니다.

아 넵.. 그렇게 구성해봐야겠습니다 ^^