CI 코드

제목 [팁] CI를 모듈화 처리한다 Matchbox
글쓴이 ci세상 작성시각 2009/09/01 09:46:26
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 22702   RSS
CI로 개발을 하다보면 자기만의 모듈별대로 폴더로 관리를 하는 개념이 유용할때가 있는데요 ~~ 오픈블로그에도 적용된 모듈화에 대하여 다음 링크를 통하면 바로 실전에 응용이 가능하실것 같습니다.

이카르트님께서 물어보셔서 다시 요기로 빼두었습니다.^^

http://codeigniter.com/forums/viewthread/65749/

http://matchbox.googlecode.com/


<실제 응용소스는>

http://codeigniter-kr.org/source/view/149/page/1
=> 오픈블로그가 모듈화로 개발되어서 배포되어 있습니다.




<블로그 module화 예제>

※ application 폴더아래에 module 폴더를 만들어서 아래와 같이 기능별로 폴더를 만들어서 쪼개두었습니다.
※ 개인적으로도 이러한 모듈(기능)별 폴더관리를 선호하는 편이라서 CI의 매력을 또한번 느껴보기도 하였습니다.

admin (관리자모드)
- controllers : 컨트롤러
- language : 언어팩
- models : 모델


blog (블로그)
- controllers : 컨트롤러
- language : 언어팩
- models : 모델

feed (Feed)
- controllers : 컨트롤러
- language : 언어팩
- models : 모델

pages (페이지)
- controllers : 컨트롤러
- language : 언어팩
- models : 모델

user (회원)
- controllers : 컨트롤러
- language : 언어팩
- models : 모델


###### 2009년 10월 6일 사용법 정리문서 - 0.9.4 버젼 기준으로 설명합니다. ######

1. config, libraries 2개의 폴더를 application 폴더안에 복사해서 넣습니다.
※ application 기본 폴더가 변경되었으면 해당 폴더에 맞춰서 넣으면 됩니다.

2. application 폴더에 modules 폴더를 생성합니다.

3. modules 폴더안에 테스트로 member 라는 폴더를 생성합니다.

4. member 폴더안에 controllers, libraries, views 폴더를 생성합니다.
※ config, model, language 폴더등등도 생성이 가능합니다.

위의 구조는 다시 트리구조로 만들면

application
  - modules
     - member
        - controllers
        - libraries
        - views
        - 등등

와 같은 구조가 됩니다.

5. 주소사용시 (2가지로 구분됩니다)

- 모듈폴더명 = 컨트롤러파일명

=> 주소사용을
http://도메인/모듈폴더명/메쏘드

- 모듈폴더명 ≠ 컨트롤러파일명
=> 주소사용을
http://도메인/모듈폴더명/컨트롤러파일명/메쏘드


6. 컨트롤러에서 views 파일 호출과 값담기

- views 파일 호출

$this->load->module_view('모듈폴더명', '뷰파일명')

=> member > views > view.htm 파일을 호출합니다.

- views 값 담기
 

$data['view'] = $this->load->module_view('모듈폴더명', '뷰파일명','',TRUE)


7. 컨트롤러에서 model 호출

 

$this->load->module_model('모듈폴더명', '모델파일', '펑션');



8. 컨트롤러에서 



################## 2009년 10월 27일 추천글 ###################

HMVC 개념으로 모듈개발할것을 추천해 드립니다.  아래글 참조해 주시면 됩니다.
http://codeigniter-kr.org/source/view/293/page/1
 

첨부파일 Matchbox.9_.4_.zip (21.3 KB)
 다음글 [팁] xml php4, php5 버젼대 사용예 (5)
 이전글 [팁] 404에러페이지 꾸미기 (1)

댓글

emc / 2009/09/01 12:17:19 / 추천 0
이런식으로 배포하면 좋겠네요.
변종원(웅파) / 2009/09/01 14:17:09 / 추천 0
전 matchbox 발견하고는 땅을 쳤지요. 진작 발견했으면 한 일주일 머리를 싸매고
로직구현을 위해 허비한 시간을 아낄 수 있었으니까요.
어쨌든 ci 1.7.1 + matchbox 로 cms 개발중입니다. ^^
emc / 2009/09/01 15:57:07 / 추천 0
빨리 내용보강이 되기를 .... ^^)/
이카르트 / 2009/09/02 00:18:12 / 추천 0
감사 ^^
질문 올려 놓으면 바로 답해주셔서 처음 접하는데 너므~ 감사하네융 ㅋ
조금 복잡한거 같아서 사용하지 말까 생각을 잠시 했었는데 (오픈블로그소스를 보기전 ㅡㅡ;)
다시 해봐야 겠네요 ㅎㅎ  

근데 한가지 더 궁금한게요 php4 에서도 ci 1.7.1 버전이 잘 돌아 가나요?? 

그리구 메뉴관리를 xml 파일로 할려구 하는데요 php4 버전에서도 xml 형태의 php 로 접근이 가능한가요? 
<?php
include 'menu_xml.php';
$xml = new SimpleXMLElement($xmlstr);
?> 

<?php
$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<menu>
 <menuTop>
  <title>프로그램</title>
  <title>입소안내</title>
  <title>게시판</title>
  <title>자료실</title>
 </menuTop>
 <menuLeft03>
  <title>에서 제공중인 프로그램 안내입니다.</title>
 </menuLeft03>
 <menuLeft04>
  <title>이용안내를 해드립니다.</title>
 </menuLeft04>
 <menuLeft05>
  <title>Q/A 상담실</title>
  <title>자유게시판</title>
  <title>공지사항</title>
  <title>복지관련소식</title>
 </menuLeft05>
 <menuLeft06>
  <title>소식지</title>
  <title>정보마당</title>
  <title>갤러리</title>
 </menuLeft06>
</menu>
XML;
?>

현재 5.3 에서 이런식으로 가져와서 사용하고 있는데.. php4 에서 동작이 안되서욤.. ㅡㅡ;
좀 알려 주세융~~ 
ci세상 / 2009/09/02 10:16:10 / 추천 0

ci코드에 php4에서 사용예제 올려두었습니다. php5로 갈아타세요 개발이 간소해집니다.^^

emc / 2009/09/02 10:37:08 / 추천 0
php4 에는 simplexml 함수가 없는 것으로 알고 있습니다.
xml 부분은 좀 고생을 하셔야 할것입니다.
ci세상 / 2009/10/06 23:27:21 / 추천 0

요즘 ci 모듈화를 많이들 쓰시는것 같아서 지금에서야 사용법 정리해 보았습니다.^^

ci세상 / 2009/10/27 18:16:47 / 추천 0
HMVC 추천글을 업데이트 해두었습니다. 개발자의 선택사항입니다.^^