CodeIgniter 한국사용자포럼 BETA
빠르고, 유연한 PHP Framework!

CI 코드


모델코드 생성기      
불의회상 25 1,707 1 0 2011-10-13 20:59:39
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 변수 초기화


  목록  

웅파 2011-10-13 21:10:48
  
오호. 제가 하려던 건데 작업하셨네요. ^^

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

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

불의회상 2011-10-14 05:45:35
  
아... 계륵.... 원래 테스트 코드를 위해 집어 넣은건데 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
  
모델코드와 함께 계륵이 되어 버린 테스트 코드

   $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
  
ㅎㅎㅎ 페이징 관련 부분 추가 했음
웅파 2011-10-14 07:52:03
  
불의회상/ 밤새신건 아니죠? 자. 이제 조인. 음하하 고생하셨습니다.
불의회상 2011-10-14 08:13:21
  
웅파// 아놔... 악덕 PM이 따로 없구만... ㅡㅡ;;
굿이네 2011-10-14 09:04:29
  

대박~

무명의시인 2011-10-14 09:06:59
  
불의회상님//

우오~~~~~~

공개하셨네요.

시간을 보니....오전 6시12분....덜덜;

정말 일찍 일어나신건가요? ㅎㅎ

불의회상 2011-10-14 09:17:25
  
무명의시인// 점점 잠이 없어지는듯.... 노화현상인가?? ㅋㅋㅋㅋ 
무명의시인 2011-10-14 09:20:00
  
불의회상 님 //

ㅋㅋㅋㅋ

설마!!!
브라이언 2011-10-14 10:28:07
  
오.... 멋지네요.... 한번 사용해봐야겠어요. ^^
UYEONG 2011-10-14 10:36:03
  
우와 ㅎㅎ
웅파 2011-10-14 11:34:45
  
불의회상/ 저 악덕PM 아닙니다. 악덕 "고문"입니다. ㅋㅋ
불의회상 2011-10-14 11:45:41
  
ㅋㅋㅋㅋ
들국화 2011-10-19 09:45:28
  
phpclasses 에서 비슷한걸 하나 받아서 프레임워크에 달아서 잠깐 썻었는데... ^^
오.. 파일 다운로드도 되고 좋네요...
탱크 2011-10-20 12:47:08
  
 으허헉...
너무 멋지십니다.

흠냐... 생각보다 훨씬 멋지네요.

예전에 어디서나 쓸려고 javascript로 만들었던적은 있었는데 ㅋ
이 정도 수준은 아니었어요. 
걍 java에서 사용할려고, 멤버변수와 CRUD의 기본만 만드는 정도였는데...

후아후아~~~
불상님 정말 짱이신 듯...
역시 불의회"장"님 자격이 충분하십니다. ^^

박순철 2011-11-02 16:42:10
  
 오... 이런것도 있네요..

디비에 데이타만 있고 코딩 해야하는것이 있었는데 

이걸로 한번 해 봐야겠습니다.

올려주셔서 감사합니다 (__)
번호 제   목 글쓴이 날짜 조회 추천수
591 TapBBS 공개합니다~ [7] KangMin 2012-04-19 670 0
586 CI에서 sqlite3 연동하기 [0] 불의회상 2012-04-04 299 0
580 CodeIgniter SimpleXML library [2] 타로 2012-02-05 797 0
577 CI 와 Smarty 템플릿의 결합 [4] 불의회상 2012-01-26 899 0
573 Okada Design Blog 소개 [3] 타로 2012-01-12 884 0
568 woctopus 계정관리도구 [2] milosz 2012-01-09 764 0
566 업로드된 이미지 정사각형으로 썸네일 만드는 함수 [3] 불의회상 2012-01-06 781 0
554 코드 이그나이터를 접하고 처음으로 만들어본 객체 입.. [7] 내일은 2011-11-11 2043 0
528 모델코드 생성기 [25] 불의회상 2011-10-13 1707 1
525 ci memo + tank_auth [2] milosz 2011-10-04 1468 0
512 포럼소스를 2.0.1 버전에 맞게 수정하였습니다. [2] 탱크 2011-04-02 4095 2
509 CI 메뉴얼 CHM 버전(영문 2.0) [1] 브라이언 2011-03-30 1525 0
508 CI 메뉴얼 CHM 버전 [0] 브라이언 2011-03-30 1739 0
494 ci memo [8] pam 2011-02-20 2288 1
489 CI 압축 프로그램 [2] 준이 2010-12-27 2024 0
482 듬직이님의 헬퍼 ip 부분 추가. [0] 나이유미 2010-11-22 2421 0
475 SELECT() 사용 시 문제점 [2] 마냐 2010-09-16 3251 0
473 CI의 사용자 인증 소스파일 [2] corean 2010-09-12 3850 0
471 CI 1.7.2 한글 언어팩 1.1 [1] cleansugar 2010-08-26 2489 0
470 Upload 라이브러리 수정본 [0] sisco 2010-07-28 2707 0