들어오는 아약스 요청을 처리하는 PHP의 Frontcontroller가있는 더 큰 응용 프로그램이 있습니다. Action-> Method 매핑을 처리하는 좋은 방법에 대해 생각하고 있습니다.이 컨트롤러는 다른 클래스를 인스턴스화하고 메소드를 실행하는 역할을 담당합니다.프론트 콘트롤러에서 큰 switch 문을 피하십시오
스위치가 너무 커지고 추한 것입니다. 나는 배열을 생성하고 간단하고 생각했다 :
if(in_array($action, $methodmap)){
$methodmap[$action]();
}
그러나 확실하지 어떻게 효율적으로 또는 다른 더 나은 대안이있는 경우이 컨트롤러가 들어오는 요청의 전체를 많이 처리하기 때문에, 성능이 중요한 것이라고.
감사합니다. 대신 "라우팅"구성 파일 ... 그 방법을 사용하여
당신은'는 isset()'대신 사용할 것, 따라서 출력, 호출 할 것 in_array()의. 그리고 스위치를 통한 해시 맵의 속도 차이는 [측정 가능하다] (http://xdebug.org/docs/profiler)입니다. – mario