Laravel da instalação ao Hello World: tutorial passo a passo

Laravel da instalação ao Hello World: tutorial passo a passo

O Laravel é o framework PHP mais usado no mundo, e não é por acaso: ele entrega rotas, banco de dados, autenticação, filas, e-mails e testes com uma sintaxe limpa e uma documentação excelente. Neste tutorial você vai sair do zero absoluto até um Laravel hello world funcionando — primeiro com uma rota simples, depois do jeito profissional, com controller e view Blade.

Não vamos pular etapas: começamos conferindo o PHP e o Composer, criamos o projeto, entendemos a estrutura de pastas e só então escrevemos código. Todos os passos têm prints para você comparar com o que aparece na sua tela.

O que você vai aprender

  • Quais são os pré-requisitos para rodar o Laravel
  • Como criar um projeto com Composer ou com o instalador oficial
  • Para que serve cada pasta de um projeto Laravel
  • Como subir o servidor de desenvolvimento com o Artisan
  • Como criar uma rota, um controller e uma view Blade
  • Como passar parâmetros da URL para a página

Se você ainda está chegando no mundo PHP, vale ler antes nossos artigos O que é PHP? e O que são os frameworks PHP?.

Pré-requisitos: PHP e Composer

A versão atual do Laravel (13, lançada em março de 2026) exige PHP 8.3 ou superior. Além do PHP, você precisa do Composer, o gerenciador de dependências do ecossistema PHP — é ele que baixa o Laravel e todas as bibliotecas que o framework usa.

Formas de instalar:

  • Windows e macOS: a maneira mais simples é o Laravel Herd, que instala PHP, Composer e o instalador do Laravel de uma vez.
  • Linux (Ubuntu/Debian): instale o PHP e as extensões pelo gerenciador de pacotes e o Composer pelo instalador oficial em getcomposer.org.
  • Qualquer sistema: o script oficial php.new (indicado na documentação do Laravel) instala PHP, Composer e o instalador em um comando.

No Ubuntu, por exemplo:

sudo apt update
sudo apt install php php-cli php-mbstring php-xml php-curl php-sqlite3 php-zip unzip

Com tudo instalado, confira as versões e as extensões principais:

Terminal mostrando php -v, composer --version e extensões do PHP para o Laravel hello world
Conferindo a versão do PHP, do Composer e as extensões necessárias

As extensões mbstring, openssl, curl e pdo_sqlite precisam aparecer na lista. Se alguma faltar, instale o pacote correspondente (por exemplo php-sqlite3).

Criando o projeto Laravel

Existem dois caminhos, e ambos geram o mesmo resultado.

Com o Composer (funciona em qualquer máquina que tenha Composer):

composer create-project laravel/laravel hello-laravel

Com o instalador do Laravel, que oferece um assistente interativo para escolher starter kit, banco e framework de testes:

composer global require laravel/installer
laravel new hello-laravel

Neste tutorial usamos o Composer, que é o caminho mais universal:

Saída do composer create-project criando o projeto hello-laravel
O Composer baixa o Laravel, gera a chave da aplicação e roda as migrations iniciais

Repare nas etapas automáticas ao final: o Composer copia o .env.example para .env, gera a APP_KEY (usada para criptografar sessões e cookies) e roda as migrations iniciais. Desde o Laravel 11, o banco padrão é o SQLite, gravado no arquivo database/database.sqlite — por isso você não precisa instalar MySQL para começar.

Entendendo a estrutura de pastas

Abra a pasta hello-laravel no seu editor. À primeira vista são muitas pastas, mas você só precisa conhecer algumas agora:

Pasta / arquivo Para que serve
app/ O código da sua aplicação: controllers, models, regras de negócio
app/Http/Controllers/ Controllers, que recebem a requisição e devolvem a resposta
routes/web.php As rotas das páginas web (URL → código que responde)
resources/views/ As views Blade, ou seja, o HTML das páginas
database/ Migrations, seeders e o arquivo SQLite
public/ A única pasta exposta para a internet; contém o index.php
.env Configurações do ambiente: banco, e-mail, chaves de API
vendor/ Dependências baixadas pelo Composer (nunca edite nada aqui)

Um detalhe importante: o .env guarda informações sensíveis e não deve ir para o Git. O Laravel já traz um .gitignore que o ignora. Explicamos o motivo no tutorial Variáveis de ambiente e arquivo .env.

Subindo o servidor com php artisan serve

O Artisan é a linha de comando do Laravel. Com ele você cria arquivos, roda migrations, limpa cache e, claro, sobe um servidor de desenvolvimento:

cd hello-laravel
php artisan serve
Terminal com php artisan --version e php artisan serve em execução
O servidor de desenvolvimento do Laravel rodando em 127.0.0.1:8000

Acesse http://127.0.0.1:8000 e você verá a página de boas-vindas do Laravel. O terminal fica “preso” mostrando cada requisição recebida; para parar o servidor, use Ctrl+C. Se a porta 8000 estiver ocupada, escolha outra com php artisan serve --port=8080.

Laravel hello world com uma rota simples

Agora sim, o primeiro código. Abra routes/web.php. Ele já contém a rota da página inicial. Adicione logo abaixo:

Route::get('/hello', function () {
    return 'Hello World!';
});
Arquivo routes/web.php com a rota /hello do Laravel hello world
A rota /hello retorna um texto simples

O que está acontecendo:

  • Route::get registra uma rota que responde a requisições GET (o que o navegador faz quando você digita uma URL).
  • '/hello' é o caminho da URL.
  • A função anônima (closure) é executada quando alguém acessa esse caminho, e o que ela retorna vira a resposta.

Salve o arquivo e acesse http://127.0.0.1:8000/hello. Não é preciso reiniciar o servidor:

Navegador exibindo Hello World na rota /hello do Laravel
Seu primeiro Hello World no Laravel

Parabéns, seu Laravel hello world está funcionando. Uma curiosidade: se a closure retornar um array, o Laravel converte automaticamente para JSON. Experimente return ['mensagem' => 'Hello World!']; — é o primeiro passo para construir APIs.

Fazendo do jeito profissional: controller

Closures em rotas são ótimas para testes rápidos, mas em projetos reais a lógica fica em controllers, que organizam o código e permitem usar cache de rotas em produção. Crie um com o Artisan:

php artisan make:controller HelloController

Edite o arquivo gerado em app/Http/Controllers/HelloController.php:

Código do HelloController com os métodos index e show
O controller entrega dados para a view hello

O método index responde à URL /hello, e o método show recebe um nome pela URL. Em ambos, a função view('hello', [...]) renderiza a view hello passando a variável $nome.

Agora troque as rotas em routes/web.php para apontar para o controller:

use App\Http\Controllers\HelloController;

Route::get('/hello', [HelloController::class, 'index']);
Route::get('/hello/{nome}', [HelloController::class, 'show']);

O trecho {nome} é um parâmetro de rota: tudo o que estiver nessa posição da URL é entregue ao método como argumento. Confira as rotas registradas com php artisan route:list:

Terminal com make:controller e route:list mostrando as rotas hello
O Artisan gera o controller e lista as rotas apontando para ele

Criando a view com Blade

O Blade é o motor de templates do Laravel. Ele permite misturar HTML com variáveis e estruturas de controle de forma segura. Crie o arquivo resources/views/hello.blade.php:

View Blade hello.blade.php com HTML e variáveis
A view Blade exibe o nome recebido e a data atual

Os pontos-chave:

  • {{ $nome }} imprime a variável já escapada contra XSS. Se alguém passar HTML ou JavaScript pela URL, ele aparece como texto, não é executado.
  • Dentro das chaves você pode usar funções PHP, como ucfirst() e o helper now() do Laravel.
  • O Blade também oferece diretivas como @if, @foreach e @include para lógica de apresentação.

Acesse http://127.0.0.1:8000/hello/jonathan:

Página Blade exibindo Olá Jonathan no navegador
O parâmetro da URL chega ao controller e é exibido pela view Blade

Agora você tem o fluxo completo do Laravel: rota → controller → view. Esse é o mesmo caminho percorrido por qualquer página de um sistema grande feito com o framework.

Erros comuns na instalação do Laravel

“Your requirements could not be resolved” — a versão do seu PHP é mais antiga do que a exigida. Atualize para PHP 8.3+ ou crie um projeto de versão anterior (composer create-project laravel/laravel:^11.0 nome).

“could not find driver” ao rodar migrations — falta a extensão do banco. Para SQLite, instale php-sqlite3; para MySQL, php-mysql.

Tela “500 | Server Error” ou “No application encryption key has been specified” — o .env não existe ou está sem a APP_KEY. Rode cp .env.example .env e depois php artisan key:generate.

A rota nova retorna 404 — confira se salvou o arquivo e se não há cache de rotas ativo (php artisan route:clear).

Mudanças no .env não surtem efeito — limpe o cache de configuração com php artisan config:clear.

Próximos passos no Laravel

Com o hello world pronto, alguns caminhos naturais:

  1. Banco de dados: crie um model com migration usando php artisan make:model Tarefa -m e explore o Eloquent.
  2. API: rode php artisan install:api para habilitar o arquivo routes/api.php e o Sanctum.
  3. Consumir APIs externas: o client HTTP do Laravel (Http::get()) facilita integrar serviços como consulta de CEP, CNPJ e envio de SMS. No tutorial Como enviar SMS com PHP usando a SDK da APIBrasil mostramos a SDK oficial, que funciona dentro de qualquer projeto Laravel.
  4. Starter kits: para autenticação pronta, conheça os starter kits oficiais — falamos deles em Starter Kit Laravel: comece a desenvolver mais rápido.
  5. Docker: para rodar o projeto com MySQL em containers, veja Docker Compose com PHP e MySQL.

Perguntas frequentes sobre Laravel

Qual versão do PHP o Laravel precisa?

O Laravel 13 exige PHP 8.3 ou superior. Versões anteriores do framework aceitam PHP mais antigo, mas o ideal é sempre usar uma versão do PHP que ainda receba atualizações de segurança.

Preciso instalar MySQL para começar com Laravel?

Não. Desde o Laravel 11 o banco padrão é o SQLite, que é apenas um arquivo dentro do projeto. Você pode trocar para MySQL ou PostgreSQL depois, alterando as variáveis DB_* no .env.

Qual a diferença entre composer create-project e laravel new?

O resultado é o mesmo projeto. O laravel new é um assistente interativo que permite escolher starter kit, banco de dados e framework de testes durante a criação; o composer create-project cria o projeto padrão direto.

O php artisan serve pode ser usado em produção?

Não. Ele é um servidor de desenvolvimento. Em produção, use Nginx ou Apache com PHP-FPM, ou soluções como Laravel Forge, Laravel Cloud ou containers Docker.

Laravel é bom para iniciantes?

Sim. A documentação é uma das melhores do ecossistema, existe uma comunidade enorme em português e o framework incentiva boas práticas desde o início. Só vale ter uma base de PHP e orientação a objetos antes de mergulhar.

Conclusão

Você instalou o PHP e o Composer, criou um projeto Laravel, entendeu a estrutura de pastas, subiu o servidor com o Artisan e construiu um Laravel hello world em duas versões: com uma rota simples e com controller e view Blade. Esse fluxo de rota, controller e view é a base de tudo o que você vai construir com o framework.

Continue a série de tutoriais com Minha primeira API em Node.js com Express para comparar como outra stack resolve o mesmo problema, ou vá direto para a prática com envio de SMS em PHP usando a APIBrasil.

Loading

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *