CI 묻고 답하기

제목 config 파일에서 library 사용하기
글쓴이 아빠돼지 작성시각 2009/09/30 10:31:29
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 29071   RSS
안녕하세요~
config 폴더 내에 사용자 정의 설정 파일에서 라이브러리를 사용할 수 있는 방법이 없는 지 알고 싶습니다.

예를 들어 어플리케이션에서 사용될 암호화된 키 값들을 특정 폴더에 xml 형태로 저장해놓구
config 폴더 밑에 설정 파일을 하나 만들어서 암복호화 라이브러리를 통해 xml 에 저장된 값을 읽어들이는 경우입니다.

CodeIgniter.php 를 보니까 application/config 파일들이 load 되는 시점이
$CI = new $class(); << 이 코드 이전이어서 설정파일 내에서 $CI =& get_instance(); 와 같이
CI 인스턴스를 사용 할 수 없게 되어 있는 듯 한데요.

혹시 이런 경우나 문제를 해결하신 분 답변 좀 주시면 대단히 감사하겠습니다.
 다음글 controllers 하위폴더 생성에 대해서 (3)
 이전글 동일 도메인 내 서로 다른 포트의 웹서버 쿠키 및 세션... (4)

댓글

변종원(웅파) / 2009/09/30 10:54:58 / 추천 0
제가 알기로는 config파일 내에서 라이브러리를 사용하실 수 없습니다.
CodeIgniter.php의 내용대로 순서상 사용이 불가능합니다.

설정파일의 경우 꼭 config에 위치하지 않아도 다른 디렉토리에 위치시키고 라이브러리를 사용하시거나
어떤 액션이 일어날때뿐만 아니라 ci가 구동되는 모든 프로그램안에서 설정값을 가져와야 한다면
후킹을 이용하는 방법도 있습니다.

CI가 로딩된 바로 직후 xml을 읽고 라이브러리를 불러와서 그 값을 상수로 선언하는 방법이 있습니다.
http://codeigniter-kr.org/tip/view/104/page/3/ 이 글 참고해보세요.
아빠돼지 / 2009/09/30 11:26:21 / 추천 0

웅파님 언제나 친절한 답변 감사합니다~ ^^

비즈니스 프로세스 상 model class 들이 load 되기 전에 값들이 셋팅 되어야 하는데,
후킹의 경우 CI 인스턴스를 사용하려면 후크 포인트를 post_controller_constructor 로 잡아야 하더라구요.
근데 지금 controller 의 생성자 부분에서 사용될 model 클래스들을 load하다보니 결국 model 클래스들이 load 되는 시점에선 값을 못가져오는 불상사가 ....

파일의 특성상 config 디렉토리 밑으로 들어갔으면 하는 간절한 바램이 있었는데 다른 방법으로 해결을 해봐야겠군요.

좋은 하루 되세요!!

변종원(웅파) / 2009/09/30 12:39:50 / 추천 0
네 포인트가 절묘하네요. ^^
후킹포인트를 pre_system로 하시고 암호화 라이브러리를 따로 만드시거나
CI 코어 자체를 확장하여 사용하셔야겠네요.
ci세상 / 2009/09/30 17:46:25 / 추천 0
코어상에서 가장먼저 로딩하는 라이브러리가 벤치마크인데요 이곳을 확장시켜서 원하는 값을 넣어서 미리 빼두면 어떨까요?