라라벨의 요청부터 응답까지 전체 실행 과정은 프로그램 시작 준비 단계, 요청 인스턴스화 단계, 요청 처리 단계, 응답 전송, 프로그램 종료 단계의 네 단계로 요약할 수 있습니다.
프로그램 시작 준비 단계
서비스 컨테이너 인스턴스화
서비스 컨테이너 자체 등록, 기본 서비스 공급자 등록, 핵심 카테고리 이름 등록 및 기본 경로 등록을 포함한 서비스 컨테이너의 인스턴스화 및 기본 등록 애플리케이션 . 등록된 서비스는 특정 클래스 이름일 뿐이며 객체는 리플렉션 메커니즘을 통해 인스턴스화되며 생성자의 종속성은 리플렉션 메커니즘을 통해 자동으로 해결됩니다.
Core 클래스 인스턴스화
Core 클래스 인스턴스화는 서비스 컨테이너가 인스턴스화된 후 코어 클래스 이름으로 서비스를 등록하여 얻은 서비스 컨테이너의 자동 인스턴스화 객체입니다. 예: index.php의 커널 클래스 인스턴스화:
$kernel = $app->make(Illuminate\Contracts\Http\Kernel::class);
요청 인스턴스화 단계
요청은 요청 라인, 요청 헤더 및 요청 엔터티를 포함하여 클라이언트가 보낸 요청 메시지입니다. Laravel은 이를 IlluminateHttpRequest 클래스의 인스턴스 객체에 분류하여 저장합니다. 이는 요청을 인스턴스 객체로 변환한다는 의미입니다. 요청 인스턴스 생성은 IlluminateHttpRequest 클래스의 static 메소드인 Capture()를 통해 완료됩니다. 즉,
$request = Illuminate\Http\Request::capture();
하지만 Capture() 메소드에서는 Symfony 요청 인스턴스를 기반으로 Laravel의 요청 인스턴스가 생성되는 것을 볼 수 있습니다. . Symfony는 PHP의 전역 배열 $_GET, $_POST, $_COOKIE, $_FILE 및 $_SERVER를 매개변수로 통해 요청을 인스턴스화합니다.
요청 처리 단계
요청 처리 단계에서는 먼저 환경 로딩, 서비스 제공자 등록 등 요청 처리를 위한 환경을 준비한 후 미들웨어를 통해 요청 인스턴스를 처리하고 라우팅 및 컨트롤러를 통한 분산 제어를 통해 서로 다른 요청이 해당 핸들러를 통해 처리되고 응답이 생성되는 프로세스입니다.
응답 전송 및 프로그램 종료 단계
응답 전송
Laravel의 응답 처리 클래스는 IlluminateHttpResponse 클래스이며, 이 클래스의 맨 아래 레이어도 Symfony의 Response 클래스입니다. 응답 전송에는 응답 헤더 정보 전송과 응답 본문 콘텐츠 전송의 두 부분이 포함됩니다.
프로그램 종료
Laravel에서 종료 프로그램은 주로 종료 미들웨어 호출을 완료합니다.
위 내용은 응답 수명주기에 대한 Laravel 요청의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!