Fluxo de execução
Fluxo de inicialização do processo
Após executar php start.php start, o fluxo de execução é o seguinte:
- Carregar as configurações em config/
- Definir as configurações do Worker como
pid_file,stdout_file,log_file,max_package_size, etc. - Criar o processo webman e escutar na porta (padrão: 8787)
- Criar processos personalizados conforme a configuração
- Após a inicialização do processo webman e dos processos personalizados, executar a seguinte lógica (tudo executado em
onWorkerStart):
① Carregar os arquivos definidos emconfig/autoload.php, comoapp/functions.php
② Carregar os middlewares definidos emconfig/middleware.php(incluindoconfig/plugin/*/*/middleware.php)
③ Executar o métodostartdas classes definidas emconfig/bootstrap.php(incluindoconfig/plugin/*/*/bootstrap.php) para inicializar módulos, como a conexão com o banco de dados Laravel
④ Carregar as rotas definidas emconfig/route.php(incluindoconfig/plugin/*/*/route.php)
Fluxo de tratamento de requisições
- Verificar se a URL da requisição corresponde a um arquivo estático em public. Se sim, retornar o arquivo (encerrar a requisição). Caso contrário, prosseguir para o passo 2.
- Determinar se a URL corresponde a alguma rota. Se não corresponder, prosseguir para o passo 3; se corresponder, prosseguir para o passo 4.
- Verificar se a rota padrão está desabilitada. Se estiver, retornar 404 (encerrar a requisição). Caso contrário, prosseguir para o passo 4.
- Encontrar os middlewares do controlador correspondente à requisição, executar as operações de pré-processamento dos middlewares em ordem (fase de requisição do modelo de cebola), executar a lógica de negócios do controlador, executar as operações de pós-processamento dos middlewares (fase de resposta do modelo de cebola) e encerrar a requisição. (Consulte o modelo de cebola dos middlewares)