전면 컨트롤러와 헤더를 사용하는 것이 PHP에서 응답을 모방하는 가장 좋은 방법입니까?

StackOverflow https://stackoverflow.com/questions/195036

  •  10-07-2019
  •  | 
  •  

문제

나는 일부 개인 프로젝트에서 늦게 PHP 프레임 워크를 연구 해 왔으며 대부분의 사람들이 전면 컨트롤러를 사용하여 응답을 모방하는 것처럼 보입니다. 컨트롤러는 요청에서 매개 변수를 가져오고 로직에 따라 적절한 헤더를 보내서 다시 경로를 표시합니다. 이것이 "응답"입니다. 이것이 PHP 에서이 작업을 수행하는 가장 좋은 방법입니까, 아니면 재 경매 및 응답을 처리하는 방법에 대한 다른 이론이 있습니까?

도움이 되었습니까?

해결책

프론트 컨트롤러는 웹 환경에 상당히 잘 적용되므로 모든 요청을 애플리케이션에 촉진 할 수 있습니다. HTTP는 SATENESTS이고, 사용자는 우연히 우연히 앱의 일부를 실수로 우연히 발견 할 수 있기 때문에 (예 : 임의의 URL을 치기) 전면 컨트롤러를 사용하면 응용 프로그램의 진입 점을 결정하고 적절하게 응답 할 수 있습니다.

편집하다: 의견에 대한 응답으로, 나는 혼란이 Java가 PHP보다 더 많은 구조를 가지고 있다는 것일 수 있다고 생각합니다. 궁극적으로 PHP는 요청에서 응답으로 매우 기본적인 상호 작용을 제공 할 수 있습니다.

switch($_GET['page']) {
  case "one";
      print "page one!";
      break;
  default:
      print "default page";
      break;
}

그리고 여기에서 모든 종류의 물건을 전면 컨트롤러로 계층화 할 수 있습니다. 요청 객체를 필터 체인을 아래로 이동하는 페이지 컨트롤러로 DB 추상화 계층을 통해 데이터를 가져오고, 필터링하고, 컨트롤러로, 및 다시 올라가는 적절한 모델로 재배치합니다. 무작위 이벤트 후크를 발사하는 동안 적절한 응답을 구성하는 관점에서. 궁극적으로 원하는 수준의 복잡성/분리를 선택하는 것은 (개발자로서) 당신에게 달려 있습니다. 이것은 PHP의 아름다움과 악입니다 :)

다른 팁

나는 당신이 본 프레임 워크의 응답 객체와 HTTP 응답을 혼동하고 있다고 생각합니다. 프론트 컨트롤러는 응용 프로그램의 게이트웨이입니다. 모든 (HTTP) 요청이이를 통과하고 적절한 컨트롤러/작업으로 향합니다. 요청을 처리한다고해서 반환 된 응답이 필요하지는 않지만 (종종 요청은 정보를 서버로 전송하기위한 것입니다) 모든 요청은 프론트 컨트롤러를 통과했을 것입니다.

요청 객체는 종종 환경 및 HTTP 요청 매개 변수를 캡슐화하고이를 검색 할 API를 제공하는 데 사용됩니다. 응답 객체 인 보체는 종종 생성 헤더를 포함하여 HTTP 응답을 생성하는 프로세스를 캡슐화하는 데 사용됩니다.

요청 및 라우팅 처리에 대한 다른 접근법이 있으며, PHP에 고유하지 않은 (전면 컨트롤러도 아니고) 페이지 컨트롤러와 같은 MVC 구조를 전혀 사용하지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top