Cursos / Informática para Internet / Plataformas de aplicações Web / Aula

arrow_back Aula 05 - Plataformas full stack - Parte 2

Conceitos da arquitetura do Laravel

Ciclo de vida de uma requisição

Primeiros passos

O ponto de entrada de todas as requisições de uma aplicação Laravel é o arquivo public/index.php. Esse arquivo não contém muito código e é só um ponto de entrada para carregar o resto do framework.

HTTP Kernels

Em seguida a requisição carrega o Kernel HTTP do Laravel, que está em app/Http/Kernel.php. Esse chamado "kernel" nada mais é que um módulo PHP que vai detectar o ambiente da aplicação e realizar outras tarefas que são necessárias antes da requisição ser efetivamente processada.

O kernel HTTP também define uma lista de "middlewares" que todas as requisições devem passar. Eles podem realizar várias tarefas como escrever e ler sessões HTTP, determinar se a aplicação está em modo de manutenção, verificar tokens, dentre outras operações.

Services Providers

Uma das mais importantes ações que o kernel HTTP realiza em uma requisição no Laravel é carregar os chamados "Services Providers" para sua aplicação, que estão configurados em config/app.php, iterando em todos eles e instanciando cada um.

Services providers são responsáveis por iniciar todos os componentes do framework como bancos de dados, filas, validações e componentes de roteamento.

Roteamento

Um dos Services Providers mais importantes é o RouteServiceProvider, que carrega os arquivos de rota contidos na pasta routes.

Quando sua aplicação está executando e uma requisição chega nesse ponto, ela será direcionada para outro roteamento ou Controller de acordo com as configurações de roteamento.

Finalizando a requisição

Depois de passar por todos os passos anteriores, uma rota ou controller pode retornar uma resposta, que irá realizar o envio dos dados de retorno, mas o Laravel ainda pode modificar a resposta nesse momento com novos cabeçalhos, por exemplo, se assim for configurado.

Finalmente o index.php chamada o método "send" que envia o conteúdo final para o navegador e a jornada de uma requisição acaba.


Versão 5.3 - Todos os Direitos reservados