2010-06-28 11 views
3

CodeIgniter에서 좋은 MVC 모델을 만드는 이유는 무엇입니까? 내 '사용자'모델은 기본적으로 데이터베이스 라이브러리에서 동일한 활성 레코드 기능을 사용합니다. 이것은 좀 어색한 느낌CodeIgniter : 좋은 모델을 만드는 이유

$this->usermodel->where('username','test'), 
$user = $this->usermodel->get(); 

, 자사가 '더 쉽게'만드는 없습니다 이후 : 유일한 차이점은 데이터베이스 테이블을 지정해야 그냥하지 않는다는 것입니다.

로드 기능이있는 사용자 개체와 같은 사용자 모델을 만드는 또 다른 방법이 있습니다. 그러나 이것은 1 명 이상의 사용자를로드 할 때 효율적이지 않습니다.

내가 조언을 얻을 수 있습니까? 감사.

+0

왜 내 질문이 저하 되었습니까? 충분히 명확하지 않았습니까? – Jens

+0

이 사실을 알고 있을지 모르지만 이상적인 모델 컨트롤러 설정은 뚱뚱한 모델 및 스키니 컨트롤러이어야합니다. 모델에서 모든 "생각"을해라! :) –

+0

Abstractly, 나는 말할 것이다 : 좋은 데이터베이스 스키마. –

답변

0

대용량 데이터 세트로 작업 할 때 '훨씬 쉽다'라고 생각하고 만들 복잡한 쿼리가 많습니다. 내가 이해하는 한, 당신이 비교적 단순한 것에 대해 작업하고 있다면, 모델을 포기하고 컨트롤러 내에서 db 호출을 할 수 있습니다. 본질적으로 '모범 사례'가 아니라 오히려 개인적인 취향입니다.

MVC 아키텍처를 사용하면 코드를 더 잘 분류하고 더 나은 구조와 코드 재사용을 할 수 있지만 많은 것을 성취하려면 MVC 아이디어를 따를 필요가 없습니다. 우선권.

+0

MVC 디자인 패턴을 사용하는 것이 무엇인지 알아요. 모델 구조 자체에 대한 몇 가지 정보를 묻는 중이었습니다. – Jens

0

요점은 모든 애플리케이션 로직을 모델로 추상화하고 컨트롤러를 사용하여 웹 인터페이스를 제어하고 웹 인터페이스와 모델을 중재하는 것입니다.

모델은 프로그램 모델이므로 응용 프로그램 모델에 영향을주지 않으면 서 사용자 인터페이스를 완전히 쉽게 재 설계 할 수 있어야합니다.

2

좋은 팁은 모델이 서로 똑바로 이야기하는 것을 허용하지 않을 것이며, 항상 (또는 가능할 때) 이러한 종류의 통신을하기 위해 컨트롤러를 사용해야한다는 것입니다.

나는 당신의 모델 안에 로직을 가지고있는 것이 나쁜 습관이라는 의견을 들었습니다 ... 이것이 사실인지는 모르겠지만 많은 시간을 망가 뜨린 규칙입니다 (만약 누군가가 제발 저를 시정하십시오).

물론 모델은 항상 재사용이 가능해야하므로 특정 문제가 아닌 특정 문제에 대한 일반적인 해결책을 제시하려고합니다 ... 반면 컨트롤러는 쓸모없는 구성 요소 인 것 같습니다. 다른 프로젝트에서 결코 사용되지 않을 추한 것들을해야합니다 ...

희망 조금 조금

+0

MVC에 대해 묻지 않고 모델 별 기능에 대해 묻고있었습니다. – Jens