실행 프로세스
프로세스 시작 프로세스
php start.php start를 실행한 후의 프로세스는 다음과 같습니다:
config/아래의 설정을 로드합니다.pid_file,stdout_file,log_file,max_package_size등의 Worker 관련 설정을 합니다.- webman 프로세스를 생성하고 포트를 리슨합니다(기본값: 8787).
- 설정에 따라 사용자 정의 프로세스를 생성합니다.
- 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)에 정의된 라우트를 로드합니다.
요청 처리 프로세스
- 요청 URL이 public 아래의 정적 파일에 해당하는지 판단합니다. 그렇다면 파일을 반환합니다(요청 종료), 아니면 2로 이동합니다.
- URL을 기준으로 특정 라우트에 히트되는지 판단합니다. 히트되지 않으면 3으로, 히트되면 4로 이동합니다.
- 기본 라우트가 비활성화되었는지 확인합니다. 그렇다면 404를 반환합니다(요청 종료), 아니면 4로 이동합니다.
- 요청에 해당하는 컨트롤러의 미들웨어를 찾아 순서대로 미들웨어 전처리 작업을 실행합니다(양파 모델 요청 단계), 컨트롤러 비즈니스 로직을 실행하고, 미들웨어 후처리 작업을 실행합니다(양파 모델 응답 단계), 요청이 종료됩니다. (참고: 미들웨어 양파 모델)