O que é o Laravel, rapidamente
Laravel é um framework (conjunto de ferramentas e convenções prontas que aceleram o desenvolvimento, em vez de você escrever tudo do zero) para a linguagem PHP. Ele organiza o código seguindo o padrão MVC (Model-View-Controller): o Model cuida dos dados e das regras de negócio, a View cuida da tela que o usuário vê, e o Controller é a "cola" que recebe o pedido, conversa com o Model e decide qual View mostrar.
function () { ... }. Isso é uma função anônima (também chamada de closure) — um bloco de código sem nome, que pode ser guardado numa variável ou passado como argumento pra outra função, e executado depois. É exatamente assim que o Laravel deixa você "anexar" um comportamento a uma rota: você não dá nome pra essa função, só entrega ela pronta pro Laravel chamar quando alguém acessar aquela URL.Instalação
composer create-project laravel/laravel:^13.0 painel-usuarios
cd painel-usuarios
php artisan servecomposer é o gerenciador de dependências (pacotes/bibliotecas prontas de outras pessoas que seu projeto pode usar) do PHP — equivalente ao npm do Node.js, se você já ouviu falar. artisan é a CLI (command-line interface, "interface de linha de comando" — um programa que você controla digitando comandos no terminal, sem tela gráfica) própria do Laravel. Depois do php artisan serve, seu projeto fica disponível em http://localhost:8000.
Estrutura de pastas essencial
app/
Http/
Controllers/ → classes que recebem a requisição e decidem o que fazer
Models/ → classes que representam tabelas do banco
routes/
web.php → rotas para páginas (navegador)
database/
migrations/ → "receitas" versionadas de como o banco deve ser
resources/
views/ → arquivos Blade (templates HTML)
public/ → único diretório exposto ao navegadorA pasta public/ — a única porta de entrada
Quando você configura um servidor de verdade (Apache, Nginx) pra rodar seu projeto Laravel em produção, o document root (a pasta que o servidor HTTP aponta como raiz pública) deve ser sempre a pasta public/ — nunca a raiz do projeto inteiro. Dentro dela fica o index.php, o único ponto de entrada de toda a aplicação.
O motivo é segurança: tudo fora de public/ — sua pasta app/, o arquivo .env com senhas e chaves de API — fica inacessível diretamente pelo navegador. Em desenvolvimento local, php artisan serve já cuida disso sozinho; na hora de subir pra produção, configurar isso certo é obrigatório.
Roteamento
Rota é a definição de "quando alguém acessar essa URL com esse método HTTP, execute isso". Fica em routes/web.php. Vamos criar as três rotas que vão sustentar o projeto inteiro.
use Illuminate\Support\Facades\Route;
Route::get('/usuarios', function () {
return 'Aqui vai a lista de usuários';
});Se você acessar http://localhost:8000/usuarios, verá esse texto. Isso confirma que a rota está funcionando — próximas aulas vão trocar esse texto solto por um Controller de verdade.
Verbos HTTP — cada ação tem um verbo próprio:
Route::get('/usuarios', ...); // ver a lista
Route::get('/usuarios/criar', ...); // ver o formulário de cadastro
Route::post('/usuarios', ...); // salvar um usuário novoGET é usado quando o navegador só está pedindo pra ver algo (uma página, uma lista). POST é usado quando o navegador está enviando dados pro servidor processar (como o conteúdo de um formulário).
Mão na massa
Instale o projeto e crie, em routes/web.php, as três rotas acima: GET /usuarios, GET /usuarios/criar e POST /usuarios. Pra cada uma, retorne por enquanto só um texto simples identificando qual rota é (ex: return 'Formulário de cadastro';). Acesse cada URL no navegador (a POST você só consegue testar mais pra frente, quando tiver um formulário de verdade) pra confirmar que todas respondem.