Slim Framework 매뉴얼 컨셉 생명주기

생명주기

응용 프로그램 생명 주기

1. 인스턴스화

먼저 Slim\App 클래스를 인스턴스화합니다. 이것이 Slim 애플리케이션 개체입니다. 인스턴스화 중에 Slim은 각 애플리케이션 종속성에 대한 기본 서비스를 등록합니다.

2. Route 정의

둘째, 애플리케이션 인스턴스의 get(), put(), delete(), patch(), head(), options() 라우팅 방법을 사용하여 경로를 정의합니다. 이러한 인스턴스 메소드는 응용 프로그램의 라우터 개체에 경로를 등록합니다. 각 라우팅 메서드는 라우팅 인스턴스를 반환하므로 라우팅 인스턴스의 메소드를 즉시 호출하여 미들웨어를 추가하거나 이름을 할당할 수 있습니다.

3. 응용 프로그램 시작

셋째, 응용 프로그램 인스턴스의 run() 메소드를 호출합니다. 이 방법은 다음 프로세스를 시작합니다.

A. 미들웨어 스택 입력

run() 메소드는 애플리케이션의 미들웨어 스택을 내부로 가로지르기 시작합니다. 이것은 Slim 애플리케이션이 실행되기 전후에 환경, 요청 및 응답 객체를 수신(선택적으로 조작)하는 미들웨어 계층의 동심 구조입니다. Slim 애플리케이션은 동심 미들웨어 구조의 가장 안쪽 레이어입니다. 각 미들웨어 계층은 맨 바깥쪽 계층에서 시작하여 내부로 호출됩니다.

B. 응용 프로그램 실행

run() 메소드가 가장 안쪽 미들웨어 계층에 도달하면 응용 프로그램 인스턴스를 호출하고 현재 HTTP 요청을 적절한 응용 프로그램 경로 객체에 디스패치합니다. 라우트가 HTTP 메서드 및 URI와 일치하면 라우트의 미들웨어 및 호출 가능이 호출됩니다. 일치하는 경로를 찾을 수 없으면 찾을 수 없음 또는 허용되지 않음 처리기가 호출됩니다.

C. 미들웨어 스택 종료

응용 프로그램 디스패치 프로세스가 완료된 후, 각 미들웨어 계층은 가장 안쪽 계층에서 시작하여 외부에서 제어를 회수한다.

D. Send HTTP Response

가장 바깥쪽 미들웨어 계층이 제어권을 확보한 후 응용 프로그램 인스턴스는 HTTP 응답을 준비, 직렬화 및 반환합니다. HTTP 응답 헤더는 PHP의 네이티브 header() 메서드로 설정되며 HTTP 응답 본문은 현재 출력 버퍼로 출력됩니다.