CI 묻고 답하기

제목 system/core/loader.php 질문
글쓴이 스크림 작성시각 2012/07/05 13:05:11
댓글 : 2 추천 : 0 스크랩 : 0 조회수 : 18483   RSS



$this->load->library 를 해서 사용자 클래스를 불러올때.

파라미터를 넘겨줘서 생성자가 실행하도록 하게 하고 싶습니다.


 public function library($library = '', $params = NULL, $object_name = NULL)
 {
  




loader 의 library 가
위와 같이 되어있길래  $params 이 그역할인줄 알고 두번째 인자에 넣어줬습니다. 하지만.

바로

if ( ! is_null($params) && ! is_array($params))
  {
   $params = NULL;
  }

이러한 부분이 나와서. null 화 시켜주길래.
순간적으로 아 여러개의 인자를 지원하나 보다. 라고 생각했지만.
배열로 넣어도 안먹히기는 마찬가지고 오히려 에러가 납니다.


생성하는 클래스에 생성자에게 전달하는 파라미터를 여러개 넘겨주고 싶을땐 어떻게 해야할까요?


 $CI->$classvar = new $name($config); 이렇게 구현이 되어있기 때문에

$config 가 배열이면(앞에서 $params 라고 씌였던 것) 클래스에서 변수로 변경해서 사용해야하는데


eval( 같은것을 사용해야 하나...;



-----

현재 결론적으론 $this->load->library('Spreadsheet_Excel_Reader',array($file,false),'excel');

이런식으로 호출해서 사용하고 있습니다.
 

 다음글 segment 질문입니다. (1)
 이전글 ci에서 image 그냥 image를 불러오려고하는데.... (14)

댓글

한대승(불의회상) / 2012/07/05 15:43:52 / 추천 0
직접 제작하신 라이브러리를 파라메터를 통해서 초기화 시키고 싶으신건가요?

아래를 참조 하세요.

http://cikorea.net/user_guide_2.1.0/general/creating_libraries.html
스크림 / 2012/07/06 09:13:53 / 추천 0
네~ 하지만 저 내용을 봐도.

결국은 param 넘겨준것을

클래스에서 받을 땐 배열로만 받을수 있다보니.

제가 만든게 아니라. 다른데서 가져온 클래스를 사용하려고 할 경우

변형을 가해줘야해서.. 전 원형그대로 쓰기위해 param을 배열로 받는게 아니라.

$param1, $param2, $param3 식으로 하게끔 하려고 했죠.