20 perguntas · PHP / Laravel
Perguntas de entrevista para Desenvolvedor PHP / Laravel
Perguntas sobre Eloquent e consultas N+1, filas, middlewares, service container, testes e segurança. Servem para separar quem gera um CRUD de quem mantém um código Laravel rápido e limpo enquanto ele cresce.
O Laravel facilita muito construir algo que funciona, e é justamente por isso que entrevistar bem para ele exige cuidado. Quase qualquer candidato gera um controller e um model. Quem vale a contratação entende o que o framework faz por ele e onde as conveniências viram armadilha.
O exemplo clássico é a consulta N+1: quem percorre uma coleção e carrega um relacionamento de forma preguiçosa dentro do loop escreveu um código que passa em todos os testes e depois derruba o banco em produção. Por isso o sinal mais valioso é a pessoa raciocinar sobre as consultas que o Eloquent gera, saber quando usar eager loading e distinguir código elegante de código eficiente.
Além do ORM, você quer confirmar que ela entende o que deixa uma aplicação Laravel sustentável: como o service container resolve dependências, como os middlewares moldam o ciclo da requisição, quando levar trabalho lento para um job na fila e como testar o resultado. Segurança também conta: mass assignment, validação, autorização e desconfiança de tudo que vem do usuário são os pontos onde código descuidado vaza. Ouça quem fala da consulta que uma linha de código executa, quem usa jobs e eventos para manter os controllers enxutos e quem explica um trade-off em vez de só citar um recurso.
Eloquent e banco de dados6 perguntas
O que é o problema de consultas N+1? Mostre como ele acontece no Eloquent e como você corrigiria.
O que observar: Um relacionamento acessado dentro de um loop gerando uma consulta por item, corrigido com with() ou load(). Citar preventLazyLoading() mostra experiência.
Quando você usa eager loading e quando usa lazy loading, e como detecta um problema de consulta antes de tudo?
O que observar: Ferramentas como Debugbar, Telescope ou log de queries, e a noção de que eager loading de relacionamentos que não serão usados também desperdiça.
Explique a diferença entre os relacionamentos hasMany, belongsTo e belongsToMany com um exemplo real.
O que observar: Onde fica a chave estrangeira em cada caso, a tabela pivô no belongsToMany e um exemplo coerente de domínio.
Quando você desceria para o query builder ou para SQL puro em vez de usar o Eloquent?
O que observar: Relatórios, agregações pesadas e operações em lote, onde hidratar models custa caro, sem abrir mão de bindings para evitar injeção.
Como migrations e seeders entram no seu fluxo de trabalho, e como você faz uma mudança de schema com segurança em produção?
O que observar: Migrations versionadas e reversíveis, cuidado com tabelas grandes e locks, e mudanças em etapas (adicionar, migrar dados, remover) para não quebrar o deploy.
Qual é a diferença entre uma Collection e uma consulta, e por que chamar all() e filtrar no PHP às vezes prejudica?
O que observar: Que all() traz a tabela inteira para a memória, enquanto where() filtra no banco. Quem confunde os dois cria lentidão e estouro de memória.
Funcionamento interno do framework5 perguntas
O que é o service container, e o que a injeção de dependência oferece no Laravel?
O que observar: Resolução automática de dependências pelo tipo, facilidade para trocar implementações e para testar com mocks ou fakes.
Quando você registraria algo no container, e qual é a diferença entre bind e singleton?
O que observar: Registrar interfaces ligadas a implementações ou objetos com configuração, com bind criando uma instância nova a cada resolução e singleton reaproveitando a mesma.
Me explique o ciclo de vida de uma requisição e onde os middlewares entram.
O que observar: Do index.php ao kernel, providers, middlewares globais e de rota, controller e resposta voltando pelos middlewares.
Como funcionam os service providers, e quando você criaria um?
O que observar: A diferença entre register e boot, e criar um provider para registrar bindings, observers ou configurações de um módulo.
Para que servem eventos e listeners, e quando você evitaria usá-los?
O que observar: Desacoplar efeitos colaterais (e-mail, log, integração), mas evitar quando eles escondem o fluxo principal e dificultam entender o que acontece.
Filas, jobs e desempenho4 perguntas
Quando você levaria um trabalho para um job na fila em vez de fazê-lo durante a requisição?
O que observar: Envio de e-mails, chamadas a APIs externas, geração de arquivos e processamentos longos, mantendo a resposta rápida para o usuário.
Como você lida com um job que falha: tentativas, backoff e failed jobs?
O que observar: Configurar tries e backoff, tornar o job idempotente, tratar o método failed() e monitorar a tabela de failed jobs ou o Horizon.
Como você encontraria e corrigiria um endpoint Laravel lento?
O que observar: Medir antes de mexer: contagem e tempo de consultas, índices, N+1, cache e trabalho síncrono que poderia ir para a fila.
Como o cache entra numa aplicação Laravel, e o que você colocaria ou não em cache?
O que observar: Cache de consultas caras e dados que mudam pouco, com estratégia de invalidação clara, e evitar cache de dados por usuário sem chave adequada.
Testes e segurança5 perguntas
Como você decide o que cobrir com feature test e o que cobrir com unit test no Laravel?
O que observar: Feature tests para fluxos HTTP com banco e unit tests para regras isoladas, com uso de factories, RefreshDatabase e fakes para fila e e-mail.
Como o Laravel protege contra SQL injection, mass assignment e CSRF, e onde um desenvolvedor ainda pode errar?
O que observar: Bindings, $fillable ou $guarded e token CSRF, e os furos comuns: DB::raw com dados do usuário, $guarded vazio e rotas sem a proteção certa.
Como você trata validação e autorização, e qual é a diferença entre um gate e uma policy?
O que observar: Form Requests para validar, gates para regras pontuais e policies para regras ligadas a um model, sempre checadas no servidor.
Me conte sobre um bug ou problema de desempenho em Laravel que você resolveu em produção. Qual era a causa raiz?
O que observar: Uma história concreta com investigação, causa e correção, de preferência com algo que impediu a repetição.
Um colega coloca uma regra de negócio pesada direto no controller. Como você trata isso no code review?
O que observar: Sugerir extrair para uma action, service ou job com argumentos de teste e manutenção, sem impor dogma de arquitetura.
Dicas para a entrevista de Desenvolvedor PHP / Laravel
- Comece pela pergunta de N+1. A forma como o candidato lida com ela prevê a competência em Laravel melhor do que quase qualquer outra.
- Valorize quem pensa no SQL que uma linha de Eloquent gera, e não só se ela funciona.
- Aprofunde filas e jobs. Saber quando adiar trabalho é sinal de quem já rodou Laravel em escala.
- Pergunte como a pessoa testa. Um bom desenvolvedor Laravel escreve feature tests por hábito, não no fim.
- Confira os instintos de segurança sobre mass assignment, validação e autorização. Código descuidado vaza exatamente aí.
FAQ
Perguntas frequentes
Quantas perguntas de Laravel fazer numa entrevista?
De seis a oito num horário de 45 a 60 minutos. Aprofundar N+1, o service container e um tema de testes ou segurança rende mais do que correr por vinte definições rasas.
Devo avaliar PHP puro além de Laravel?
Um pouco. Confirme a familiaridade com PHP moderno (tipos, interfaces, orientação a objetos básica), mas a maior parte do sinal deve vir de como a pessoa raciocina sobre o Laravel e a camada de banco.
Vale aplicar um desafio para casa ou exercício ao vivo para vagas de Laravel?
Vale. Uma funcionalidade pequena com teste, ou corrigir um N+1 num repositório de exemplo, revela os hábitos reais. Combine com as perguntas de discussão para avaliar julgamento, e não só o resultado.
O que diferencia uma resposta júnior de uma sênior em Laravel?
O júnior entrega um CRUD que funciona. O sênior raciocina sobre as consultas geradas, leva trabalho lento para a fila, mantém os controllers enxutos, escreve testes e cita problemas de produção que resolveu.
Como fazer a triagem de candidatos Laravel antes da entrevista?
Use um teste de habilidades curto ou perguntas de triagem na candidatura para filtrar quem entende de Eloquent e do framework antes de gastar tempo de entrevista. Na Hireaan, os testes são corrigidos pela IA e os candidatos aparecem ranqueados por aderência à vaga.
Mais bancos de perguntas de entrevista
- Python júniorPerguntas para Desenvolvedor Python júniorSaiba mais
- Python sêniorPerguntas para Desenvolvedor Python sêniorSaiba mais
- QAPerguntas para Analista de QA e automação de testesSaiba mais
- ReactPerguntas para Desenvolvedor ReactSaiba mais
- AndroidPerguntas para Desenvolvedor AndroidSaiba mais
- AWSPerguntas para Engenheiro de cloud AWSSaiba mais
Abriu a vaga de Desenvolvedor PHP / Laravel? Rode o processo na Hireaan.
A IA ranqueia os candidatos, você agenda as entrevistas, aplica testes de habilidades e envia a proposta, com um preço fixo para o time inteiro.
- 14 dias grátis
- Sem cartão de crédito
- Cancele quando quiser
- Conforme a LGPD
