DEV Community

Rodrigo Castro
Rodrigo Castro

Posted on

Observers no Laravel

Se você já trabalhou com Laravel, provavelmente já precisou executar algumas ações automaticamente quando algo acontece com seus models. Criar logs quando um usuário é cadastrado, enviar emails quando um pedido é finalizado, ou limpar cache quando um produto é atualizado.

A solução mais óbvia seria colocar essa lógica diretamente nos controllers ou nos próprios models. Mas convenhamos, isso vira uma bagunça rapidinho.

Laravel Observers

Os Observers são como aquele amigo atento que sempre sabe quando algo acontece e age automaticamente. Eles "observam" os eventos do Eloquent (created, updated, deleted, etc.) e executam código específico para cada situação.

Na prática, como funciona?

Imagine que você tem um model User e quer enviar um email de boas-vindas sempre que alguém se cadastra:

Depois é só registrar no AppServiceProvider:

Por que usar Observers?

Primeiro, seu código fica muito mais organizado. Toda a lógica relacionada aos eventos do model fica concentrada em um lugar só. Segundo, você segue o princípio da responsabilidade única - o controller cuida da requisição, o model cuida dos dados, e o observer cuida dos efeitos colaterais. Terceiro ponto: testabilidade. É muito mais fácil testar um observer isoladamente do que toda a stack junta.

Dica de ouro

Use observers para ações que sempre devem acontecer, independente de onde o model foi alterado. Se a ação é específica de um contexto (tipo "enviar email só quando o admin cadastra"), talvez seja melhor manter no controller mesmo.

Conclusão

Os Observers são uma ferramenta poderosa para manter seu código Laravel limpo e organizável. Eles transformam aqueles "lembretes mentais" de executar certas ações em código automático e confiável.

Top comments (1)

Collapse
 
clintonrocha98 profile image
Clinton Rocha

Ótimo conteúdo :D