기본적으로 Play Framework는 기본 제공 HTTP 서버 (Netty 기준)를 사용합니다. 그래서 PHP와 가장 유사한 유추는 Play가 Apache와 PHP가 될 것입니다.
PHP는 기존의 'CGI와 같은'패러다임을 사용합니다. 하나의 HTTP 요청을 처리하기 위해 프로그램이 시작되고 요청 처리가 끝난 후 종료됩니다. HTTP 요청을 제공하는 CGI에서 웹 서버는 외부 프로그램 (스크립트)을 시작하고 출력을 반환합니다. 이전 버전의 PHP는 CGI 용으로 만 설계되었으며 이후 버전에서는 서버와 상호 작용할 수있는 다른 방법이 있습니다. CGI는 매우 느리지 만 핵심 원칙은 동일하게 유지됩니다.
대부분의 웹 응용 기술은 다른 접근법을 사용합니다. 웹 응용 프로그램이 한 번 시작된 다음 실행 중이므로 하나의 실행중인 웹 응용 프로그램 인스턴스가 계속 요청을 처리하고 여러 개의 요청을 동시에 처리 할 수 있습니다. PHP처럼 하나의 요청을 처리 한 후에도 죽지 않습니다. 이것은 숨겨진 내부 프레임 워크에서 요청 처리가 대부분 이루어지고 앱이 요청 도착 및 반환시 호출되는 컨트롤러 메소드를 노출하기 만하면되므로 매번 애플리케이션을 시작하는 데 필요한 자원을 훨씬 적게 소비 할 수 있습니다. 응답.
또한 웹 서버 내부에서 바로 백그라운드 처리를 시작할 수 있으므로 외부 서버 프로세스가 필요하지 않습니다. Play에는 매우 편리한 Akka 라이브러리가 있습니다.
웹 애플리케이션이 매번 중량급 웹 페이지를 제공하는 대신 Ajax 및 REST 접근 방식을 사용함에 따라 점점 더 중요 해지고 있습니다. 또한 요청 기술 (폴링, 긴 폴링, 다중 파트 iframe)에 관계없이 성능이 좋은 PHP를 사용하여 실시간 메시징 백엔드를 만드는 것은 거의 불가능합니다.
그러나보기, 모델 및 컨트롤러를 만드는 개발자의 관점에서 보면 PHP MVC 프레임 워크와 비교하면 Play가 매우 유사합니다. PHP MVC 프레임 워크와 Play 프레임 워크 모두 컨트롤러 메소드 또는 함수를 호출하며이 메소드는 응답을 반환해야하며, 뷰는 일반적으로 템플릿이며 모델은 일반적으로 관계형 데이터베이스에 대한 ORM 바인딩입니다.
는 이제 위의 링크는 https://github.com/playframework/playframework/blob/master/framework/src/play-netty-server/src/main/scala/play/core/server 다음으로 이동 /NettyServer.scala – hiren
@hiren 감사합니다. 링크를 업데이트했습니다. – EECOLOR