Spec Backend Com Php E Laravel • Trilha Progressiva em 4 Níveis


🎯 Nível 1: Fundamentos

Problema 19.1 — Ambiente de Desenvolvimento Local com Laravel Sail

Contexto: Ambiente de Desenvolvimento Local com Laravel Sail no contexto de Conteinerização com Sail e Deploy com Octane.

Requisitos de Execução:

  1. Montar docker-compose.yml orquestrando PHP 8.3, PostgreSQL e Redis via Sail.

Resultado Esperado

Ambiente local inicializado com `sail up -d`.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_1_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
# docker-compose.yml (Sail)
version: '3.8'
services:
  laravel.test:
    image: sail-8.3/app
    ports:
      - '80:80'
    environment:
      WWWUSER: '1000'
      LARAVEL_SAIL: 1
    depends_on:
      - pgsql
      - redis
  pgsql:
    image: postgres:16-alpine
  redis:
    image: redis:7-alpine

🔍 Nível 2: Prática

Problema 19.2 — Aceleração com Laravel Octane (FrankenPHP / Swoole)

Contexto: Aceleração com Laravel Octane (FrankenPHP / Swoole) no contexto de Conteinerização com Sail e Deploy com Octane.

Requisitos de Execução:

  1. Configurar Laravel Octane para manter a aplicação carregada em memória com servidor de alta performance.

Resultado Esperado

Octane inicializado atingindo 10.000 req/s em benchmark.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_2_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
// config/octane.php
return [
    'server' => env('OCTANE_SERVER', 'frankenphp'),
    'workers' => env('OCTANE_WORKERS', 'auto'),
    'max_requests' => 10000,
];

⚡ Nível 3: Integração

Problema 19.3 — Cuidados com Estado em Aplicações Octane (State Leaks)

Contexto: Cuidados com Estado em Aplicações Octane (State Leaks) no contexto de Conteinerização com Sail e Deploy com Octane.

Requisitos de Execução:

  1. Implementar flush de variáveis estáticas e singletons após cada requisição.

Resultado Esperado

Vazamento de estado evitado com listeners de reset de contexto no Octane.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_3_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
<?php
// app/Providers/AppServiceProvider.php
use Laravel\Octane\Events\RequestReceived;
use Illuminate\Support\Facades\Event;

Event::listen(RequestReceived::class, function () {
    // Reset de buffers estáticos
});

🏆 Nível 4: Desafio Corporativo

Problema 19.4 — Dockerfile Multi-stage para Produção com PHP-FPM e Opcache

Contexto: Dockerfile Multi-stage para Produção com PHP-FPM e Opcache no contexto de Conteinerização com Sail e Deploy com Octane.

Requisitos de Execução:

  1. Escrever Dockerfile de produção compilando extensões PDO, Redis e habilitando JIT/Opcache.

Resultado Esperado

Imagem Docker de produção otimizada para Kubernetes.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_19_4_SeuNome
  2. Envie na tarefa: Atividade Cap 19 - Conteinerização com Sail e Deploy com Octane
🔑 Gabarito de Código & Solução Comentada
# Dockerfile.prod
FROM php:8.3-fpm-alpine
RUN docker-php-ext-install pdo pdo_pgsql opcache
COPY . /var/www/html
RUN composer install --no-dev --optimize-autoloader
EXPOSE 9000
CMD ["php-fpm"]