CI 코드

제목 모델코드 생성기
글쓴이 한대승(불의회상) 작성시각 2011/10/13 20:59:39
댓글 : 27 추천 : 1 스크랩 : 0 조회수 : 16795   RSS
한대승(불의회상)
CI를 이용하여 홈페이지 리뉴얼 준비중 입니다.
 
지난번 웅파님과 정모때 잠깐 이야기 했었는데 테이블이 많아서 일일이 모델 만들기가 귀찮아 간단한 프로그램을 짜서 하신다고 하더군요.
 
리뉴얼을 준비하며 MVC를 적용 시키려니....
모델 코딩하는게 반복 작업에 귀차니즘 그 자체 더군요.
 
그래서 웅파님의 아이디어에 착안하여 기본적인 모델코드를 생성해주는 프로그램을 짜봤습니다.
 
최근에 개념만 잡고 실천에 못옮긴 TDD를 해보려고 공부하고 있는데 모델 코드 만들면서 테스트가 가능하도록 테스트 코드도 작성 하도록 해 봤습니다.
 
분명 누군가 더 조은 프로그램을 만들었을것 같은데... 찾기가 힘들군요.
혹시 비슷한 프로그램 보신것 있으시면 알려주세요.
 
아직 완성이 안됐습니다만 참고 하시라고 올려 봅니당.. ^^

다운로드 받아서 열어 보시고 주석 한 줄 없다고 너무 뭐라 하지 마세요 ^^
어느정도 마무리 되면 메뉴얼도 작성해 볼까 생각중입니다.

설치는 별거 없습니다.

다운 받으시고 압축푼다음 내용 보시고 application에 집어 넣으시면 됩니다.

좋은 아이디어나 버그관려 제보해 주시면 적극 반영 하겠습니다.
참고로 리뉴얼 하는 홈피가 CI 1.7.3을 쓰고 있어서 그쪽에서는 제대로 테스트 했습니다만...
CI 2.0.3은 메뉴얼 보고 바뀐점만 살짝 수정하고 테스트는 안해서 에러가 속출 할 지도 모릅니다.

생성된 코드는 다운 받은후 controler 와 model쪽에 각각 넣어 주시면 됩니다.
코드가 원활이 동작하는지 테스트 해보시려면 테스트 프로그램 돌려 보시면 됩니다.

primary key는 Table에 정수로 설정되었다는 가정하에 작성 했습니다만....
문자열이어도 잘 동작 하리라 생각 합니다.

※추신
뷰가 참 심플 합니다.
뷰 작업해 주시면 적극 반영 하겠습니다. ^^^

 
테스트 URL : http://www.hoksi.wo.tc/code_gen

-:-:-:- 수정사항 -:-:-:-
* 모델코드 생성 부분 

1.  페이징을 위한 limit 추가  
2. 검색을 위한 find 함수 추가
3. 중복되는 get_value 함수 삭제

* 테스트코드 생성 부분
1. get_value 함수 테스트 부분 삭제

-:-:-:- 수정 사항 -:-:-:-

* 테스트 코드 생성부분
1. insert와 edit 부분 로직 수정

* VIew
1. jquery-ui 적용 인터페이스 개선

-:-:-:- 수정사항 -:-:-:-

* 모델코드 생성 부분
1. find 함수 실행시 1 row 만 반환하는 에러 수정

-:-:-:- 수정사항 -:-:-:-

* 컨트롤러 부분
1. $tbl 변수 초기화

첨부파일 code_gen.zip (11.9 KB)
 다음글 코드 이그나이터를 접하고 처음으로 만들어본 객체 입니다... (7)
 이전글 ci memo + tank_auth (2)

댓글

변종원(웅파) / 2011/10/13 21:10:48 / 추천 0
오호. 제가 하려던 건데 작업하셨네요. ^^

소스 좀 보고 다시 댓글 달겠습니다.

제가 참고했던 소스 찾아서 올려드릴께요. 뷰도 있고 조인도 지원되는..
한대승(불의회상) / 2011/10/13 21:11:35 / 추천 0
웅파// 조인 지원 안되고 테이블 싱글만 지원 합니다. ^^
이현석 / 2011/10/13 21:24:04 / 추천 0
 우왘 이거 좀 짱이네요!
한대승(불의회상) / 2011/10/13 21:24:50 / 추천 0
이현석// ㅋㅋㅋ 이거 줄라고 전화 했었는데... 먼저 공개 해 버렸음.. ^^
변종원(웅파) / 2011/10/13 21:36:59 / 추천 0
불의회상/ 페이징도 넣어주세요. ㅎㅎㅎ
한대승(불의회상) / 2011/10/13 21:41:44 / 추천 0
응?? 웬 페이징...
테스트 코드쪽에 버그 있어서 수정 했음...
다시 다운로드 받으세요..
변종원(웅파) / 2011/10/13 22:41:21 / 추천 0
 흐흐 limit ^^
한대승(불의회상) / 2011/10/13 22:46:04 / 추천 0
ㅎㅎ 그거... 생각 못했넹...
나를 잠 못자게 하려는 속셈이야... 음...
milosz / 2011/10/14 00:20:43 / 추천 0
 더 좋은 프로그램요? 이게 좋은 프로그램인데!ㅎㅎ
화이팅입니다 화이팅 화이팅~~!!

한대승(불의회상) / 2011/10/14 05:45:35 / 추천 0
아... 계륵.... 원래 테스트 코드를 위해 집어 넣은건데 count로 쓸일은 없을거 같고... 지우자니 아깝고..
여기에 남겨 놓고 지워야지....

 function get_<?php echo $tbl;?>_value($id = NULL, $select = NULL, $limit = NULL)
 {
  $ret = NULL;
  
  $pos = strpos(',', $select);
  if($pos !== FALSE) {
   $select = substr($select, 0, $pos); 
  }
  
  if($id !== NULL && $select !== NULL) {
   $data = $this->get_<?php echo $tbl;?>($id, $select, $limit);
   $ret = $data[$select];
  }
  
  return $ret;
 }

한대승(불의회상) / 2011/10/14 05:53:38 / 추천 0
모델코드와 함께 계륵이 되어 버린 테스트 코드

   $this->get_<?php echo $tbl;?>_value_test();

 function get_<?php echo $tbl;?>_value_test()
 {
  echo $this->unit->run(
   $this-><?php echo $tbl;?>_model->get_<?php echo $tbl;?>_value('<?php echo $primary_value;?>', '<?php echo $primary_key; ?>'),
   '<?php echo $primary_value;?>',
   '<?php echo $tbl;?> Get Value test');
 }

한대승(불의회상) / 2011/10/14 06:12:20 / 추천 0
ㅎㅎㅎ 페이징 관련 부분 추가 했음
변종원(웅파) / 2011/10/14 07:52:03 / 추천 0
불의회상/ 밤새신건 아니죠? 자. 이제 조인. 음하하 고생하셨습니다.
한대승(불의회상) / 2011/10/14 08:13:21 / 추천 0
웅파// 아놔... 악덕 PM이 따로 없구만... ㅡㅡ;;
굿이네 / 2011/10/14 09:04:29 / 추천 0

대박~