Architecture Concepts - Request Lifecycle

inhalin·2021년 7월 7일
0

Laravel

목록 보기
1/7

Lifecycle Overview

First Steps

엔트리포인트는 public/index.php

라라벨의 첫번째 동작은 서비스 컨테이너 인스턴스 생성

HTTP / Console Kernels

모든 incoming request는 HTTP 커널 또는 콘솔 터널에 보내진다.

HTTP Kernel 위치는 app/Http/Kernel.php이고, request가 실행되기 전에 실행되는 bootstrappers 배열을 정의하는 Illuminate\Foundation\Http\Kernel 클래스를 상속받는다.

또한 어플리케이션에서 처리되기 전에 모든 request가 통과해야 하는 HTTP middleware 목록도 정의한다.

HTTP Kernel의 handle 메서드는 Request를 받아서 Response를 리턴한다.

Service Providers

kernel bootstrapping action에서 가장 중요한 것 중 하나가 내 어플리케이션의 서비스 프로바이더를 로딩하는 것이다. 어플리케이션의 모든 서비스 프로바이더는 config/app.php 파일의 providers 배열에 설정되어 있다.

라라벨이 배열을 돌면서 목록에 있는 모든 프로바이더를 인스턴스화하면 프로바이더는 register 메서드를 호출하고, 모든 프로바이더가 등록되면 각 프로바이더는 다시 boot 메서드를 호출한다.

서비스 프로바이더는 프레임워크가 제공하는 모든 컴포넌트를 부트스트래핑하기 때문에 라라벨 부트스트래핑 과정에서 제일 중요한 부분이다.

Dispatch Request

어플리케이션이 브트스트래핑 되고 모든 서비스 프로바이더가 등록되면 request가 라우터에 전달된다. 라우터는 request를 라우트나 컨트롤러에 전달하고 특정 라우트에 지정된 미들웨어를 실행한다.

Focus On Service Providers

라라벨 어플리케이션 부트스트래핑의 핵심은 서비스 프로바이더이다.
어플리케이션 인스턴스가 생성되고 서비스 프로바이더가 등록되면 부트스트랩 된 어플리케이션이 요청을 받아서 처리한다.

(작성중)

0개의 댓글