2011-01-07 3 views
0

일부 사람이 나를 분명히 해줄 수 있습니까? MVC 패러다임에서 아이디어는 컨트롤러를 가능한 한 얇게 유지하는 것입니다. 모델이 데이터베이스, XML-RPC 등과 같은 데이터 소스와 통신하는 비트이고 이것이 비즈니스 로직을 수행해야하는 곳이기도합니다. .MVC - 얇은 컨트롤러 아이디어 - Codeigniter/Zend

POST 및 GET 데이터가 '데이터 소스'입니까? 해당 종류의 데이터를 모델에서 처리해야합니까, 아니면 컨트롤러에서 처리해야합니까?

일반적으로 모델에서 메서드를 호출하여 포스트 데이터를 전달하면 데이터가 컨트롤러에 의해 검사되고 모델 메서드가 단순히 삽입 작업을 수행합니다. 그 컨트롤러는 단지 게시물이 발생했을 때 컨트롤러가 모델 메소드를 호출해야하고, 정상 검사, 데이터 검사 등을 담당합니다.

+1

[MVC 이해 : 모델의 "Fat"개념과 컨트롤러의 "Skinny"개념은 무엇입니까?] (http://stackoverflow.com/questions/3109715/understanding-mvc-whats-the-concept- of-fat-on-models-skinny-on-controllers) – Gordon

+1

아이디어는 재사용 할 수있는 모델을 가지고있는 것입니다. 왜냐하면 모든 모델이 데이터베이스와 대화하는 "힘겨운 일"을하기 때문입니다. 컨트롤러는 재사용 할 수 없습니다 (때로는 ... 일 수도 있지만) 사용자 인터페이스가 모델과 통신하도록하는 것은 안전한 방법 일뿐입니다. 얇고 앱에 특화된 컨트롤러를 쓰면 모델에 대한 더 일반적인 논리가 있다는 것을 의미합니다. 앞으로도 많은 시간을 할애해야합니다. – rabidmachine9

답변

0

내 접근 방식에서 컨트롤러는 올바른 데이터 (POST/GET)을 선택하고 모델을 보내기 전에 기본값을 설정하거나 양식을 검증하여 완료하십시오. 테스트 가능성을 위해 모델 $request->getParams(); $request->getPost() and $request->getQuery() 래퍼를 사용하여 모델을 공급할 것을 적극 권장합니다. ZF는 기여자 오랜에서 여기에 링크를 모델, 컨트롤러와 관계를 설계하는 방법에 대한 추가 자원으로

블로그 : The M in MVC; Why Models are Misunderstood and Unappreciated

+0

위대한 기사 링크! – kevtrout

+0

환영합니다. 질문을 명확히하기 위해 추가 정보가 필요합니까? –

0

나는 POST 작업 및 데이터를 얻는 것은 컨트롤러의 책임에 해당 있다고 생각 . 들어오는 데이터를 처리하여 라이브러리 나 모델로 보내고 응답을 가져 와서 다른 라이브러리, 모델 또는 뷰로 라우트하는 작업자로 볼 수 있습니다.