일련의 이벤트를 따르기 위해 컨트롤러를 작게 유지하는 경향이 있으며 컨트롤러 동작이 비즈니스 논리를 처리하기 위해 모델 동작을 호출하도록 모델 동작과 모델 매퍼를 사용하는 것을 고려하고 있습니다. 요청 개체를 부모 모델 작업에 전달하는 것을 고려해 봤지만 컨트롤러에서 URL 매개 변수와 세션 데이터를 처리하여 비즈니스 논리를 준비하고 싶습니다. 예 :GET 요청 변수 처리
제 질문은이 논리가 컨트롤러에 있어야합니까? 좀 더 우아한 방식으로 이것을 처리하면 모든 컨트롤러가 모델에 대한 몇 가지 호출과 거의 같아 보이고 렌더링이 중요합니다. 예 :
indexAction(){
$action = new Model_Action();
$result = $action->doThings();
switch($result){
case 'wonderful':
$this->render('wonderfult_things');
break;
case 'terrible':
$this->render('terrible_errors');
break;
default:
$this->render('lorem ipsum');
}
}
//in model:
doThings(){
$getVar = $this->_request['getVar'];
if(!empty($getVar)){
$this->doOneAction();
}else{
$this->doOtherAction();
}
}
아마도 여기 분할 머리카락을 해요,하지만 그것은 나 컨트롤러에 보인다 요청은 내가 뭔가를 할 모델을 호출하는 것보다 다른 아무것도 할 내 컨트롤러를 사용하는 것으로 보이지 않는다 단지 결코 더 가까운 관계를 가지고 다음 렌더링하십시오. 이것에 대한 의견이 있으십니까?
업데이트 : 예는 목록을 요청
. 한 요청이 범주의 제목을 반환하면 다른 요청은 추가 api 매개 변수를 사용하여 하위 범위의 특정 목록을 반환합니다. 응용 프로그램의 컨텍스트 내에서 데이터의 그래픽 표현을 공유하는 것이 더 복잡하지만 동일한 뷰를 공유하는 것이 좋습니다. 내 API를 더 잘 정의함으로써이 두 가지 사이의 지식에 대한 지식을 결정할 것입니다. 컨트롤러에서 모델 접촉에 사용자 인식 API 매개 변수 만 사용할 수 있습니까? 감사.
컨트롤러를 사용하는 방법은 제 생각에는 컨트롤러가해야하는 것입니다. 요청을 받고 요청/서비스/모델 응답에 따라 무엇이 호출되어야하는지 (어떤 서비스/모델)를 결정한 다음 올바른 응답 (렌더링보기/리디렉션 등)을 보냅니다. 그러나 개발자 의견만큼이나 많은 의견이 있기 때문에 실제로는 꽤 의견을 바탕으로 한 질문입니다. 그것이 당신을 위해 작동한다면, 그것을하십시오. 모델은 요청 (GET/POST 등)의 매개 변수를 직접 _ _ 얻지 않아야합니다. 그러면 모델을 테스트하고 다른 목적으로 모델을 재사용하는 것이 더 어려워 질 것입니다. –
MVC에 대한 참조를 제거한 운영자처럼 보이지만 내 질문을 업데이트 해 주셔서 감사합니다. – timdedrick