Fluxo de Execução
Processo de Inicialização do Processo
Após executar php start.php start
, o fluxo de execução é o seguinte:
- Carregar as configurações do diretório config/
- Definir as configurações relacionadas ao Worker, como
pid_file
,stdout_file
,log_file
,max_package_size
, entre outras - Criar o processo webman e escutar a porta (padrão 8787)
- Criar processos personalizados com base nas configurações
- Após a inicialização do processo webman e dos processos personalizados, a seguinte lógica é executada (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étodo start das classes definidas emconfig/bootstrap.php
(incluindoconfig/plugin/*/*/bootstrap.php
), usadas para inicializar alguns módulos, como a conexão com o banco de dados do Laravel
④ Carregar as rotas definidas emconfig/route.php
(incluindoconfig/plugin/*/*/route.php
)
Fluxo de Processamento de Solicitações
- Verificar se a URL da solicitação corresponde a um arquivo estático no diretório public. Se sim, retornar o arquivo (finalizar a solicitação); se não, ir para 2
- Determinar se a URL corresponde a uma rota específica. Se não corresponder, ir para 3; se corresponder, ir para 4
- Verificar se as rotas padrão estão desativadas. Se sim, retornar 404 (finalizar a solicitação); se não, ir para 4
- Encontrar os middlewares correspondentes ao controlador da solicitação e executar, na ordem, as operações de pré-processamento do middleware (fase de solicitação do modelo cebola), executar a lógica do negócio do controlador, e em seguida, executar as operações de pós-processamento do middleware (fase de resposta do modelo cebola). A solicitação é finalizada. (Consulte o Modelo de Cebola de Middleware)