CI 묻고 답하기

제목 라이브러리 공통사용?
글쓴이 남중맹획 작성시각 2013/01/09 12:38:07
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14584   RSS
 안녕하세요. 
CI 접한지 이제 4일정도 된거 같은데요. 
참 가야할 길이 머네요.

질문 하나 드립니다.

이것저것 해보다 보니..
application 여러개로 구분해 두는것 해보고 있는데요. 

-application
                    -/aaaa
                                -/M
                                -/C
                                -/V

                    -/bbbb
                                -/M
                                -/C
                                -/V

요렇게요. 

근데...헬퍼라던가..라이브러리 My_가 붙은 커스텀 클래스 들 중에는
똑같은걸...사용하게 되는 경우들이 있는데..
이런파일들도...
/aaaa  ,/bbbb 안에 똑같이 복사해 넣어줘야 하는지요?

공통으로 사용되는 클래스는 밖으로 좀 빼거나 해서 관리하고 싶거든요..
이것저것 검색해보다가...딱 잘 모르겠어서 글 올립니다.
고수님들 고견 기다릴께요. 어떤걸 참고하면 될까요..


 다음글 uri세그먼트 한글 인식. (2)
 이전글 controller에서 view에 경고창 띄우기. (3)

댓글

우왕아항 / 2013/01/09 15:39:16 / 추천 0
ci를 본지 너무 오래되서 제가 제대로 기억하나 모르겠습니다만.. ㅠㅠ
그냥 제 php 경험으로 답변해보자면..

1. ci 로직을 수정하거나
2. 그냥 my붙은 클래스는 최상위에 수기로 include해서 쓰면 될것 같습니다.
어차피 이미 include 되어있다면 ci에서의 my클래스 include는 패스할테고 (만약 못한다면 그부분만 찾아서 주석해도 되고)
my클래스들의 상속 사용은 각각 mvc 파일들에서 해주니까 작동에 문제는 없을 것 같아요.
2creative / 2013/01/09 16:46:07 / 추천 0

제가 이해하는게 맞다면 뭔가 잘못알고 계신거 같습니다만..
class들은 controller 폴더에 넣어두시면 되고,
model 들은 models 폴더에 넣어두시면 되고,
view 파일들은 views 폴더에 넣어두시면 됩니다.
커스텀라이브러리라면 libraries 폴더 구요

헬퍼든, 커스텀 라이브러리든 사용하고 싶을때는 바로 불러들이면 됩니다.
$this->load->helper('uri');
이후부터는 $this->uri->segments(1); 이런식으로 사용하시는 거구요..

어느 controller에서든 사용되는 헬퍼나 라이브러리라면, autoload 에 등록하시면 됩니다.
autoload 에 uri 헬퍼를 등록해 뒀다면, 위에처럼 불러들이는 일 없이 바로 사용하실 수 있겠죠..
도움이 되셨을지 모르겠네요.
매뉴얼을 처음부터 천천히 정독해보시길 권해드려요!

우왕아항 / 2013/01/09 18:02:46 / 추천 0
 2creative//
기본 제공된 틀로 사용하려는게 아닌, 여러개의 application으로 나눠서 사용하시려는 의미 같습니다.


남중맹획//
원하시는 구조가
ci_core -> ci 코어
custom_core -> 개발자가 작성한 공용 code
applications -> 각각의 어플리케이션들

로 나누는 것으로 보이는데, 지금 ci를 다운받아서 대강 훑어본 결과, 제가 적은 위의 방법대로 하시면 될 것 같습니다.
(이 기능을 제공해주는지는 모르겠습니다. 없는 것으로 보고 있긴 합니다.)

다만 "custom_core".
즉, 언급하신 my나 공용으로 쓸 helper등을 불러 올 수 있는 핸들링은 직접 구현하셔야 할것 같네요.
아니면 좋은 구조는 아니겠지만
그부분을 system(즉 ci_core) 에 구현하시면 요구하신 사항은 어렵지 않게 충족될 것 같습니다.
변종원(웅파) / 2013/01/09 18:13:13 / 추천 0
공용 core를 위해서는 따로 구현을 해야하는데 hmvc나 matchbox를 조금 수정해서 사용해도 됩니다.

위 두개의 라이브러리는 application 디렉토리 이외의 다른 디렉토리에도 ci와 똑같은 구조로
사용할 수 있게 해줍니다.
남중맹획 / 2013/01/09 18:35:35 / 추천 0
//웅파 답변 감사합니다. 하루종일 구글 바다를 헤멘결과 hmvc 적용하고 수정하여 해결하였습니다 core를 따로잡는게 경로 때문에 무지 헛갈렸네요 //우왕하앙님 많은 힌트가 되었습니다 감사합니다
엘리 / 2013/01/09 19:32:49 / 추천 0
핡 저돈데 ... 4일차 ㅠ.ㅠ 우리 열심히 해봐요!!! ~ ㅠㅠ