Aula 20 - Projeto Capstone: Aplicação Web Laravel Robusta Autônoma 🏆
Objetivo Pedagógico
Objetivo: Construção de uma aplicação corporativa completa em Laravel 10+, com autenticação Sanctum, Service Layers, processamento em segundo plano com Horizon e suíte de testes com Pest.
📑 1. Fundamentos Teóricos & Análise Técnica
O Projeto Capstone de Especialização em Backend PHP desafia o estudante a projetar e implementar uma plataforma completa de Gestão de Assinaturas e Cobranças Recorrentes (SaaS Billing Engine) em Laravel 10+.
O projeto consolida as seguintes exigências de engenharia: 1. Autenticação Segura de APIs com Laravel Sanctum: Emissão e revogação de tokens com escopos de permissão limitados (Token Abilities). 2. Arquitetura em Camadas Desacoplada: Controllers enxutos, DTOs imutáveis tipados e Services gerenciados pelo contêiner de injeção de dependências. 3. Processamento Assíncrono com Redis: Processamento de pagamentos e liquidação periódica de faturas via Jobs gerenciados no Laravel Horizon. 4. Cobertura de Testes com Pest PHP: Suíte automatizada cobrindo testes unitários, testes de integração de API e testes de arquitetura com cobertura superior a 85%.
📐 Arquitetura Conceitual & Diagrama de Fluxo
graph TD
Client["Client / Checkout SaaS"] --> Sanctum["Sanctum Auth Middleware"]
Sanctum --> Controller["SubscriptionController"]
Controller --> DTO["SubscriptionDTO"]
Controller --> Service["SubscriptionService"]
Service --> MySQL["MySQL / PostgreSQL (Eloquent)"]
Service --> Queue["Redis Queue (InvoiceJob)"]
Queue --> Horizon["Laravel Horizon Worker"]
Horizon --> Gateway["Gateway de Pagamento Externo"]
style Client fill:#e1f5fe,stroke:#01579b
style Sanctum fill:#fff3e0,stroke:#e65100
style Service fill:#e8f5e9,stroke:#2e7d32
style Horizon fill:#f3e5f5,stroke:#7b1fa2 🔍 Pilares e Diretrizes Técnicas
Nesta unidade, aprofundamos os seguintes conceitos fundamentais: - Design de Software Corporativo: Eliminação total de regras de negócio em controllers e views. - Conformidade e Idempotência: Chaves de idempotência em transações financeiras para prevenir cobranças em duplicidade. - Monitoramento com Horizon: Métricas visuais de latência e controle de falhas de processamento. - Pipeline de Integração Contínua: Execução do Pest e checagem de tipos estáticos com PHPStan no nível máximo de rigor.
🛠️ 2. Implementação Prática em Laravel 10+, MySQL, Redis, Pest e Horizon
Abaixo está a implementação técnica de referência, estruturada com padrões de engenharia de software e foco em robustez:
// SubscriptionController.php (Controlador Enxuto em Laravel 10)
<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Requests\CreateSubscriptionRequest;
use App\Services\SubscriptionService;
use App\Services\SubscriptionDTO;
use Illuminate\Http\JsonResponse;
use Symfony\Component\HttpFoundation\Response;
class SubscriptionController extends Controller {
public function __construct(
private readonly SubscriptionService $subscriptionService
) {}
public function store(CreateSubscriptionRequest $request): JsonResponse {
$dto = SubscriptionDTO::fromRequest($request->validated());
$subscription = $this->subscriptionService->createSubscription($dto);
return response()->json([
'message' => 'Assinatura ativada com sucesso.',
'data' => $subscription
], Response::HTTP_CREATED);
}
}
💡 Análise Passo a Passo do Código
- Injeção readonly no Construtor: O PHP 8.2 injeta a camada de serviço com imutabilidade referencial estrita.
- Validação no Request:
$request->validated()entrega apenas dados previamente higienizados pelas regras do FormRequest. - Resposta Padronizada: Uso de constantes
Response::HTTP_CREATEDpara clareza semântica nos códigos de retorno.
🎯 3. Próximos Passos & Sequência Didática
-
Slides da Aula
-
Quiz de Fixação
-
Exercícios Práticos
-
Desafio de Projeto