Blog

Laravel

Criando aplicações web com Laravel: rotas, models do Eloquent, autenticação, filas e deploy, explicados com exemplos práticos que você pode usar em projetos reais.

Ainda não há artigos aqui!

Ainda não escrevemos sobre esse assunto. Escolha outro tema ou volte em breve!

Questions about this topic

Quick, clear answers to what readers ask most about this topic.

O que é o Laravel?

Laravel é um framework PHP gratuito e de código aberto para construir aplicações web. Ele oferece aos desenvolvedores partes prontas para rotas, banco de dados, login, e-mail, filas e testes, reduzindo o código repetido. O framework segue o padrão model, view, controller e tem uma grande comunidade.

Para que serve o Laravel?

O Laravel serve para construir aplicações web como sistemas de gestão, portais de clientes, lojas virtuais, plataformas de agendamento e APIs para apps de celular. Ele atende qualquer projeto que precise de usuários, banco de dados e regras de negócio. Muitas empresas rodam grandes sistemas privados em Laravel porque o framework é estável e fácil de estender.

Laravel é bom para iniciantes?

O Laravel é bom para iniciantes que já sabem o básico de PHP, porque o código é legível e a documentação oficial é clara. Ele também tem uma grande comunidade, muitos tutoriais e starter kits que já montam as páginas de login para você. Aprender PHP puro primeiro torna o framework muito mais fácil de entender.

Como instalar o Laravel no meu computador?

Para instalar o Laravel, instale primeiro o PHP e o Composer e depois rode composer create-project laravel/laravel seguido do nome do projeto. O instalador do Laravel, chamado com laravel new, faz o mesmo e oferece starter kits. Depois disso, php artisan serve inicia um servidor local para você abrir a aplicação no navegador.

Qual versão do PHP o Laravel exige?

O Laravel exige uma versão recente do PHP 8, e cada versão do Laravel informa a menor versão de PHP que suporta. As versões mais novas do Laravel deixam de suportar versões antigas do PHP quando estas chegam ao fim do suporte de segurança. Confira sempre o guia de atualização da versão do Laravel que pretende usar.

O que são rotas no Laravel?

As rotas no Laravel ligam um endereço web e um método HTTP, como GET ou POST, ao código que responde a ele. Elas são escritas em arquivos como routes/web.php para páginas e routes/api.php para APIs. Uma rota pode chamar uma closure ou um método de controller e pode levar middlewares de login e outras verificações.

O que é o Eloquent no Laravel?

O Eloquent é o ORM do Laravel, a parte que permite trabalhar com as tabelas do banco de dados como classes PHP chamadas models. Cada model corresponde a uma tabela, e cada objeto a uma linha, então dá para ler e salvar dados sem escrever SQL. O Eloquent também cuida de relacionamentos como um-para-muitos e muitos-para-muitos.

Como funcionam os relacionamentos do Eloquent no Laravel?

Os relacionamentos do Eloquent no Laravel são métodos do model, como hasMany, belongsTo e belongsToMany, que descrevem como duas tabelas se ligam. Depois de definidos, você lê os dados relacionados com algo como $order->customer, sem escrever um join. O eager loading com o método with carrega as linhas relacionadas de uma vez e evita consultas repetidas e lentas.

O que é o problema de consultas N+1 no Laravel?

O problema N+1 no Laravel acontece quando o código carrega uma lista de registros e depois roda uma consulta extra para cada registro a fim de buscar dados relacionados. Uma página com 100 pedidos pode acabar rodando 101 consultas e ficar lenta. O eager loading com o método with resolve o problema buscando as linhas relacionadas em uma única consulta.

O que são migrations no Laravel?

Migrations no Laravel são arquivos PHP que criam e alteram tabelas do banco de dados por meio de código. Rodar php artisan migrate as aplica, para que todo desenvolvedor e todo servidor tenham a mesma estrutura de banco. Como as migrations ficam no controle de versão, o histórico de cada mudança nas tabelas fica guardado.

O que é o Blade no Laravel?

O Blade é o motor de templates do Laravel para escrever páginas HTML com tags simples de laços, condições e layouts. Por padrão, o Blade escapa os valores impressos, o que protege as páginas contra cross-site scripting. Os templates são compilados para PHP puro e ficam em cache, então o Blade quase não acrescenta custo a cada requisição.

Como funciona a autenticação no Laravel?

A autenticação no Laravel funciona por meio de guards, que verificam quem é o usuário, e providers, que carregam os usuários do banco de dados. Starter kits como o Laravel Breeze acrescentam páginas prontas de login, cadastro e redefinição de senha. As senhas recebem hash com bcrypt ou Argon2, então nunca ficam guardadas em texto puro.

Qual a diferença entre Laravel Sanctum e Laravel Passport?

O Laravel Sanctum oferece login simples por token e cookie para single page apps, apps de celular e APIs básicas, enquanto o Laravel Passport é um servidor OAuth2 completo. A maioria dos projetos só precisa do Sanctum, porque ele é mais leve e mais fácil de configurar. O Passport serve para casos em que aplicações externas precisam fazer login em nome dos seus usuários.

O que são middlewares no Laravel?

Middlewares no Laravel são camadas que verificam ou alteram uma requisição antes que ela chegue ao seu código, ou uma resposta antes que ela saia. Middlewares comuns cuidam da verificação de login, da proteção CSRF, do limite de requisições e do idioma. Você pode aplicar middlewares a rotas isoladas, a grupos de rotas ou à aplicação inteira.

Como funcionam as filas no Laravel?

As filas no Laravel tiram tarefas lentas, como enviar e-mails ou gerar relatórios, da requisição web e as levam para jobs em segundo plano. O job é enviado para um driver de fila como Redis ou o banco de dados, e um worker iniciado com php artisan queue:work o executa. O usuário recebe uma resposta rápida enquanto o trabalho pesado termina em segundo plano.

Quando usar filas em uma aplicação Laravel?

Use filas em uma aplicação Laravel sempre que uma tarefa demorar mais que um instante ou conversar com um serviço externo, como e-mail, processamento de arquivos ou webhooks de pagamento. As filas mantêm as páginas rápidas e permitem que jobs que falharam sejam repetidos sozinhos. O Laravel Horizon oferece um painel para acompanhar as filas no Redis.

Como agendar tarefas no Laravel?

Para agendar tarefas no Laravel, defina-as no scheduler com métodos como daily ou everyFiveMinutes e rode php artisan schedule:run a cada minuto a partir de uma única entrada de cron no servidor. O scheduler então decide quais tarefas estão no horário. Assim, todos os jobs agendados ficam no código, em vez de em várias linhas de cron separadas.

Como validar dados de formulário no Laravel?

Você valida dados de formulário no Laravel com o método validate da requisição ou com uma classe Form Request que guarda as regras. Regras como required, email, max e unique verificam cada campo antes que o seu código o use. Quando a validação falha, o Laravel devolve o usuário ao formulário com as mensagens de erro e os dados digitados.

Como o Laravel protege contra ataques web comuns?

O Laravel protege contra ataques web comuns com tokens CSRF nos formulários, saída escapada no Blade, parâmetros vinculados nas consultas ao banco e senhas com hash. Esses padrões bloqueiam falsificação de requisição entre sites, cross-site scripting e SQL injection no uso normal. Os desenvolvedores ainda precisam validar as entradas, verificar permissões e manter o framework atualizado.

Como publicar uma aplicação Laravel em um servidor?

Para publicar uma aplicação Laravel, baixe o código no servidor, rode composer install sem os pacotes de desenvolvimento, configure o arquivo .env e execute as migrations. Depois, coloque em cache a configuração, as rotas e as views, e aponte o servidor web para a pasta public. Muitas equipes automatizam essas etapas a partir do Git para que cada versão seja publicada do mesmo jeito.

De que servidor uma aplicação Laravel precisa?

Uma aplicação Laravel precisa de um servidor com PHP, um servidor web como Nginx ou Apache, um banco de dados como MySQL ou PostgreSQL e o Composer. O Redis costuma ser acrescentado para cache e filas, e um gerenciador de processos mantém os workers das filas rodando. A Hostrena, marca de hospedagem da Linkysoft, oferece hospedagem de aplicações web para Laravel com publicação direto do Git.

Como deixar uma aplicação Laravel mais rápida?

Você deixa uma aplicação Laravel mais rápida colocando em cache a configuração, as rotas e as views, usando eager loading nos relacionamentos e criando índices nas colunas do banco usadas em buscas. Mover o trabalho lento para filas e guardar em cache no Redis os resultados de consultas pesadas ajuda ainda mais. Ativar o OPcache do PHP no servidor traz um grande ganho com pouco esforço.

Como testar uma aplicação Laravel?

Você testa uma aplicação Laravel com PHPUnit ou Pest, que já vêm configurados em todo projeto novo. Os testes de funcionalidade enviam requisições simuladas às rotas e verificam a resposta e o banco de dados, enquanto os testes unitários verificam classes isoladas. O comando php artisan test roda a suíte inteira.

O Laravel aguenta aplicações grandes com muitos usuários?

O Laravel aguenta aplicações grandes com muitos usuários quando roda em bons servidores com cache, filas, índices no banco de dados e mais de um servidor de aplicação atrás de um balanceador de carga. O framework em si raramente é o limite, normalmente são as consultas lentas e a falta de cache. É por isso que a Linkysoft desenvolve aplicações web sob medida com PHP, Laravel, MySQL e Redis.

Com que frequência devo atualizar a versão do Laravel?

Você deve atualizar a versão do Laravel no mínimo antes que a versão atual deixe de receber correções de segurança. O Laravel lança uma versão principal mais ou menos uma vez por ano, e cada uma vem com um guia de atualização. Atualizações pequenas e regulares são muito mais fáceis do que pular várias versões de uma vez.