Pular para o conteúdo principal

ADR 0004 — SQL nos serviços, mysqli (PDO pontual)

  • Status: aceito
  • Data: 2026-07 (PDO adicionado pontualmente em 2026-09)

Contexto

Não havia ORM. O legado misturava SQL na página. Na refatoração, a opção era Repository + PDO em tudo, ou mover SQL para backend/src/services e manter mysqli, que já era o padrão de 500 prepare().

Decisão

  • Não introduzir ORM nem camada de repositório neste ciclo.
  • SQL e transação ficam no serviço de domínio, com prepared statements.
  • backend_db() devolve mysqli. backend_pdo() existe para trechos que pedem PDO (extensão obrigatória na imagem).

Consequências

  • Feature nova é rápida (um serviço, um endpoint).
  • Regras de taxa/herança ainda duplicam entre arquivos — consolidar é refactor futuro, não ADR nova ainda.
  • Teste de unidade pede extrair funções puras ou esperar PSR-4.