CI 코드

제목 간단한 DB쿼리를 간단하게 만들어주는 CRUD 모델
글쓴이 엽토군 작성시각 2018/01/06 18:12:31
댓글 : 2 추천 : 0 스크랩 : 1 조회수 : 4034   RSS

가입하자마자 자작 model 파일 올립니다. ㅎㅎ

Github: https://github.com/yuptogun/crud

기트헙에 올릴 때 설명문에 굳이 적지 않았던 개발 동기를 가입인사 겸해서 적자면...

지난 2~3년간 어쩌다 보니 코드이그나이터 웹앱 외주를 해주게 되었습니다. 그런데 가만히 보니까 느낀 점 2가지가 뭐냐면

  1. 컨트롤러별로 일일이 별도의 모델을 만들어줄 필요가 없다. 테이블명이랑 컬럼명만 그때그때 바꿀 수 있으면...
  2. 앱의 수준이 그렇게 높지 않다면 어느 컨트롤러, 어느 앱이건 쿼리 자체는 대체로 비슷비슷하다.

그래서 조사해 보니 base model이라는 이름으로 일반적인(다운받아 설치해서 아무데서나 쓸 수 있도록 디자인된) 모델 파일들이 몇 가지 있더군요.

그치만 그것조차도 너무 무겁고 반복적이고 공부할 필요가 있어서...

자작으로 새로 하나 만들었습니다.

 

가장 흔히 날리는 쿼리들을, 제가 생각할 수 있는 한에서는, 정말 짧고 쉽게 날려서 결과를 받을 수 있습니다.

// foo 테이블 전체를 json 형태로 받아보기
$foo = $this->crud->r('foo', null, 'json');

// foo 테이블 전체를 uid 내림차순으로 받아오기
$foo = $this->crud->r('foo', array('order' => array('uid' => 'desc')));

// foo 테이블에 title 값을 지정해서 새 행 넣기
$is_inserted = $this->crud->c('foo', array('title' => 'bar'));

// foo 테이블의 uid가 3인 행이 있으면 title을 업데이트하고, 없으면 새로 만든다
$is_updated = $this->crud->s('foo', array('uid', 3), array('title' => 'bar'));

// foo 테이블의 uid가 7인 행 삭제
$is_deleted = $this->crud->d('foo', array('uid', 7));

// foo 테이블의 각 컬럼 키값과 코멘트 가져오기
// (컬럼별 한국어 이름을 저장해놓고 쓰고 싶을 때 유용합니다.)
$foo_names = $this->crud->h('foo', true);

 

자세한 것은 깃헙의 영문 설명서를 읽어봐주세요. ㅎㅎ

이런저런 프로젝트 진행하며 계속 업데이트할 생각입니다. 이슈를 열어주시거나 pull request를 해주시면 아주 반가울 것 같습니다 ^^

감사합니다.

 

관련링크 누르시면 바로 최신판 다운로드가 됩니다.

관련링크 https://github.com/yuptogun/crud/archive/master.zip
 다음글 [CI2/CI3] 간단한 코드의 Alert 헬퍼입니다. (1)
 이전글 폼빌더... (1)

댓글

변종원(웅파) / 2018/01/08 09:22:48 / 추천 0
고생하셨습니다. 반복작업에 유용하겠네요. ^^
한빛가람 / 2018/01/23 21:06:43 / 추천 0
이런 귀중한 자료를 만들어주셔서 감사합니다.. ㅠㅠ