# EPIC-1: Migração PHP 7.4 → PHP 8.4

## Objetivo
Migrar todo o código PHP do site Vizeu Grupo para compatibilidade total com PHP 8.4, eliminando erros fatais, warnings deprecated e notices que impedem o funcionamento correto.

## Contexto
O site foi desenvolvido originalmente para PHP 7.4 (Hostinger) e agora roda em PHP 8.4 (Herd local). Diversas funções foram removidas ou deprecadas entre as versões 8.0-8.4, causando erros fatais e comportamento inesperado.

## Escopo

### Dentro do escopo
- Correção de incompatibilidades PHP 8.4 em `app/`, `system/`, `admin/`, `plugins/` usados
- Substituição de funções removidas/deprecadas
- Atualização de dependências críticas (PHPMailer)
- Manter compatibilidade com Hostinger (PHP 7.4) quando possível

### Fora do escopo
- Refatoração de arquitetura do sistema
- Migração para framework moderno
- Diretório `appeeee/` (backup/legado, não utilizado)
- Melhorias de segurança além do necessário para a migração

## Stories

| Story | Título | Prioridade | Estimativa |
|-------|--------|------------|------------|
| 1.1 | Substituir `each()` em plugins | CRÍTICA | P |
| 1.2 | Corrigir `null` em `preg_replace`/`str_replace` | CRÍTICA | P |
| 1.3 | Substituir `utf8_encode()`/`utf8_decode()` | CRÍTICA | P |
| 1.4 | Refatorar chamadas `eval()` | ALTA | M |
| 1.5 | Converter short open tags `<?` para `<?php` | ALTA | G |
| 1.6 | Corrigir `extract()` com variáveis residuais | MÉDIA | P |
| 1.7 | Atualizar PHPMailer e dependências | ALTA | M |
| 1.8 | Validação final e smoke test | ALTA | M |

**Legenda estimativa:** P = Pequena, M = Média, G = Grande

## Métricas de Sucesso
- [ ] Zero erros fatais no log do Nginx
- [ ] Zero warnings deprecated no log
- [ ] Cadastro de usuário funcional com envio de e-mail
- [ ] Navegação completa do site sem erros
- [ ] Painel admin funcional
- [ ] Site continua funcionando na Hostinger (PHP 7.4)

## Inventário de Problemas

| Categoria | Severidade | Arquivos afetados | Instâncias |
|-----------|-----------|-------------------|------------|
| Short open tags `<?` | Alta | 118 | 118+ |
| `utf8_decode()`/`utf8_encode()` | Crítica | 6 | 22+ |
| `eval()` | Crítica | 5 | 12 |
| `each()` | Crítica | 2 | 3 |
| `preg_replace()` com null | Alta | 3+ | 5+ |
| `str_replace()` com null | Alta | 2+ | 3+ |
| `extract()` side effects | Média | 3 | 6 |
