Como o Laravel funciona

Danilo Lutz
JunDevelopers
Published in
3 min readFeb 27, 2019

E aí pessoal, tudo tranquilo? Bora pra mais um artigo…

O Laravel por definição é um framework MVC, não entraremos no mérito do que é o MVC. Assumo aqui que você já sabe o que é MVC e também entende como o PHP funciona, ao menos o básico. Então vamos lá…

A primeira coisa que devemos entender sobre o Laravel é como funciona o seu ciclo de vida (lifecycle).

Lifecycle do Laravel

Algo importante a saber é onde tudo começa e no Laravel o início de tudo é em um arquivo chamado index.php encontrado na pasta \public. É um arquivo simples e todos os webservers (Apache, NGINX etc) devem direcionar suas requisições para ele.

Esse arquivo não possui realmente uma quantidade expressiva de código, mas o pouco código que possui é muito importante, esse código é “quem” carrega a instância do Laravel através do arquivo de autoload gerado pelo Composeressa forma de carregar é também conhecida como PSR-4, apenas de curiosidade hehehe.

Nem só o SO vive de Kernel…

Após a carga, o próximo passo, dependendo do tipo da requisição o framework direciona o processamento para Kernel HTTP ou para o Kernel de Console. Esses dois Kernels são por onde tudo flui no Laravel.

Kernel HTTP

O Kernel HTTP é o nosso foco por agora, sendo que o Console Kernel consiste de coisas para um outro artigo.

O Kernel HTTP estende a interface Illuminate\Foundation\Http\Kernel que por sua vez define os bootstrapper array ou array de inicialização, que são processados assim que a requisição chega.

Esses inicializadores, iniciam — A vá! — o funcionamento básico do Laravel, como: configuração do gerenciamento de erros, de logging, reconhecimento do ambiente e outras coisas que precisam ser realizadas antes do próximo passo…

Longo caminho a requisição tem…

Além disso o Kernel HTTP tem uma lista definida de Middlewares os quais também processam e manipulam a requisição. Esses Middlewares são responsáveis por persistir Sessões, fazer as verificações de Token CSRF, prevenir SQL Injection, entre outras coisas.

O Kernel HTTP pode ser interpretado como uma grande caixa preta a qual você alimenta com requisições (requests) e ela te devolve respostas (responses). Sua implementação reside em lugar específico dessa grande caixa preta.

Provedores de Serviços (Service Providers)

Uma das coisas mais importantes a se saber é que o Kernel, em suas ações de inicialização, carrega os Service Providers, onde primeiro todos os Providers são registrados, uma vez que o registro foi finalizado, em seguida todos são inicializados.

Os Service Providers são responsáveis por inicializar todos os diversos componentes da estrutura, como os componentes de banco de dados, fila, validação e roteamento e também implementações próprias.

Como eles inicializam e configuram todos os recursos oferecidos pela estrutura, podemos dizer que são o aspecto mais importante de toda a inicialização (bootstrapping) do Laravel.

O recurso de Service Provider talvez seja o aspecto mais importante que faça com que o Laravel seja tão poderoso.

Uma vez que tudo o que foi explicado anteriormente tenha acontecido, a requisição (request) finalmente chega ao roteador (router), sim esse mesmo: o que irá direcionar a request para o processamento em seu devido controlador (controller), mas não antes de a request ser processada pelos middlewares específicos da rota. Aí sim a request é entregue para o controller.

Resumindo: a request finalmente chegou para ser trabalhada, por nós, através da nossa própria implementação. Um processo simples porém um conhecimento muito valioso…

Bom galera, por hoje eu vou ficando por aqui…

Por favor, não deixem de compartilhar, comentar e deixar seu feedback.

Referências

--

--

Danilo Lutz
JunDevelopers

Obsessed for learning. OOP, PHP, C# and Python lover. Since 2003 coding...