실행 프로세스

프로세스 시작 프로세스

php start.php start를 실행한 후의 프로세스는 다음과 같습니다:

  1. config/ 아래의 설정을 로드합니다.
  2. pid_file, stdout_file, log_file, max_package_size 등의 Worker 관련 설정을 합니다.
  3. webman 프로세스를 생성하고 포트를 리슨합니다(기본값: 8787).
  4. 설정에 따라 사용자 정의 프로세스를 생성합니다.
  5. webman 프로세스와 사용자 정의 프로세스가 시작된 후 다음 논리를 실행합니다(아래 내용은 모두 onWorkerStart 내에서 실행됩니다):
    config/autoload.php에 설정된 파일을 로드합니다 (예: app/functions.php).
    config/middleware.php (포함: config/plugin/*/*/middleware.php)에 설정된 미들웨어를 로드합니다.
    config/bootstrap.php (포함: config/plugin/*/*/bootstrap.php)에 설정된 클래스의 start 메소드를 실행하여 일부 모듈을 초기화합니다(예: Laravel 데이터베이스 초기화 연결).
    config/route.php (포함: config/plugin/*/*/route.php)에 정의된 라우트를 로드합니다.

요청 처리 프로세스

  1. 요청 URL이 public 아래의 정적 파일에 해당하는지 판단합니다. 그렇다면 파일을 반환합니다(요청 종료), 아니면 2로 이동합니다.
  2. URL을 기준으로 특정 라우트에 히트되는지 판단합니다. 히트되지 않으면 3으로, 히트되면 4로 이동합니다.
  3. 기본 라우트가 비활성화되었는지 확인합니다. 그렇다면 404를 반환합니다(요청 종료), 아니면 4로 이동합니다.
  4. 요청에 해당하는 컨트롤러의 미들웨어를 찾아 순서대로 미들웨어 전처리 작업을 실행합니다(양파 모델 요청 단계), 컨트롤러 비즈니스 로직을 실행하고, 미들웨어 후처리 작업을 실행합니다(양파 모델 응답 단계), 요청이 종료됩니다. (참고: 미들웨어 양파 모델)