🚀 Capítulo 20: O Confronto Final (Tema: Vingadores - Ultron Parte 2)
NOTE
Este capítulo utiliza a temática de Ultron para o Projeto Final do curso de PHP e Laravel. Junte todos os conhecimentos para derrotar a ameaça!
1. 🎯 Objetivo da Aula
Aplicar todos os conceitos aprendidos ao longo dos 19 capítulos anteriores para construir uma API Rest completa no Laravel, entendendo o fluxo completo de uma aplicação profissional.
2. 🏢 O Cenário Prático (Seu Desafio)
Chegou o momento do confronto final contra Ultron! Para vencer essa batalha, os Vingadores precisam de um sistema unificado que integre tudo o que aprendemos:
- Variáveis e Arrays para guardar os dados dos heróis (Cap 1 e 2).
- Estruturas de Decisão para escolher a melhor estratégia (Cap 3).
- POO para modelar os personagens (Cap 10).
- Laravel para criar as rotas seguras e controllers (Cap 14 e 15).
- Migrations e Eloquent para salvar os relatórios da batalha no banco (Cap 16 e 17).
- Validação para impedir dados falsos do Ultron (Cap 18).
- Autenticação para garantir que apenas heróis acessem o painel (Cap 19).
O seu desafio final é construir a API de Gerenciamento de Missões dos Vingadores!
🧠 O Fluxo do Projeto Final
🗺️ 1. As Rotas (routes/api.php):
Criar rotas para registrar usuários, fazer login e gerenciar as missões.
Route::post('/registrar', [AuthController::class, 'registrar']);
Route::post('/login', [AuthController::class, 'login']);
// Rotas protegidas
Route::middleware('auth:sanctum')->group(function () {
Route::get('/missoes', [MissaoController::class, 'index']);
Route::post('/missoes', [MissaoController::class, 'store']);
});🕵️♂️ 2. O Model e Migration (Missao):
Criar a tabela de missões com campos como titulo, descricao e status.
🧠 3. O Controller (MissaoController):
Aplicar a validação nos dados recebidos e usar o Eloquent para salvar no banco!
4. 📖 Exemplo Guiado: O Código da Vitória
Veja como ficaria o método de salvar uma missão no Controller, aplicando quase tudo o que aprendemos:
<?php
namespace App\Http\Controllers;
use App\Models\Missao;
use Illuminate\Http\Request;
class MissaoController extends Controller {
public function store(Request $request) {
// 1. Validação (Cap 18)
$request->validate([
'titulo' => 'required|min:5',
'descricao' => 'required'
]);
// 2. Eloquent para salvar (Cap 17)
$missao = new Missao();
$missao->titulo = $request->titulo;
$missao->descricao = $request->descricao;
$missao->save();
return response()->json([
'mensagem' => 'Missão cadastrada com sucesso! Vingadores, avante!',
'dados' => $missao
], 201);
}
}
?>5. 🛠️ Prática Obrigatória: Revisão Geral
Com base em todo o curso:
- Qual é a diferença entre usar PHP puro (com
includee arquivos.txt) e usar um framework como o Laravel com banco de dados para criar um sistema profissional?
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 20 PHP_UltronP2) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
spec_backend_com_php_e_laravel/
├── capitulos/
│ └── capitulo_20_ultron_p2.md💡 Checkpoint de Lógica
Parabéns por chegar até aqui! Você agora domina os conceitos fundamentais do Backend com PHP e Laravel. Continue praticando e construindo seus próprios projetos para se tornar um desenvolvedor sênior!
🔑 Gabarito de Código/Fórmulas
Gabarito da Prática:
- O PHP puro exige que você construa toda a estrutura de segurança, conexão com banco e organização de arquivos do zero. Já o framework Laravel traz uma estrutura profissional pronta e testada (MVC, ORM, Validação, Autenticação), permitindo que você foque apenas na lógica do seu negócio e desenvolva sistemas muito mais seguros e rápidos!