0
102

SHARE

Separação Clara de Camadas - Core, Domain e Infra

Separação Clara de Camadas: Core, Domain e Infra

Aprenda como aplicar separação de camadas (core, domain, infra) no desenvolvimento de plugins WordPress e leve sua arquitetura a outro nível.
Este post é a parte 13 de 15 da Série WordPress Extremo: Arquitetura e Engenharia de Plugins

Fala Dev! Blz? Asllan aqui… vamos evoluir ainda mais nosso plugin agora com a Separação Clara de Camadas: Core, Domain e Infra!

Separar bem as camadas do seu plugin não é “frescura de programador chato”. É engenharia de verdade.

Neste post, você vai entender como organizar o seu plugin em 3 camadas fundamentais:

  • Core → Lógica de negócio que não depende de WordPress.
  • Domain → Contratos e regras do seu domínio (entidades, serviços, interfaces).
  • Infra → Tudo que é específico do WordPress (hooks, filtros, API REST, banco, etc).

😰 O problema de não separar as camadas

Você já viu plugins onde tudo acontece em uma classe só? Tipo assim:

class MeuPlugin {
  function init() {
    if (isset($_GET['acao'])) {
      $user = get_user_by('id', $_GET['user']);
      // envia email, salva log, atualiza post, etc
    }
  }
}

Esse tipo de código acopla lógica, acesso a dados e regras específicas num balaio só.

Resultado: difícil de testar, difícil de dar manutenção, e impossível de escalar.


✅ O que é essa separação de camadas?

Aqui vai o mapa da mina:

src/
│
├── Core/           <- Lógica isolada (pode ser testada fora do WP)
│   └── Services/
│       └── ValidadorDeCPF.php
│
├── Domain/         <- Regras do domínio (interfaces, contratos, entidades)
│   └── Contracts/
│       └── LoggerInterface.php
│   └── Entities/
│       └── Cliente.php
│
└── Infra/          <- Integrações específicas com o WordPress
    ├── Http/
    │   └── Controllers/
    │       └── ApiController.php
    ├── Repositories/
    │   └── UserRepository.php
    └── WordPress/
        └── Hooks.php

🚀 Como aplicar isso no plugin WP24H

Vamos supor que você tenha um serviço para validar uma assinatura via API.

1. Core → AssinaturaValidator.php

namespace WpArquiteturaExtrema\Core;

class AssinaturaValidator
{
    public function validar(string $token): bool
    {
        // Validação pura, sem WordPress
        return strlen($token) === 32;
    }
}

2. Domain → LoggerInterface.php

namespace WpArquiteturaExtrema\Domain\Contracts;

interface LoggerInterface
{
    public function info(string $message): void;
    public function error(string $message, array $context = []): void;
}

3. Infra → WordPressLogger.php

namespace WpArquiteturaExtrema\Infra;

use WpArquiteturaExtrema\Domain\Contracts\LoggerInterface;

class WordPressLogger implements LoggerInterface
{
    public function info(string $message): void
    {
        error_log("[INFO] $message");
    }

    public function error(string $message, array $context = []): void
    {
        error_log("[ERROR] $message - " . json_encode($context));
    }
}

🤖 Por que isso importa?

  • Testar sua lógica sem precisar carregar o WordPress.
  • Trocar a implementação de algo sem quebrar o resto.
  • Criar comandos WP-CLI, APIs, ou blocos Gutenberg que usam os mesmos serviços.

Agora você entende como tudo isso se encaixa num plugin robusto, sustentável e escalável.


✍️ Conclusão

Separar seu plugin por camadas não é exagero, é sobrevivência. Plugins bem escritos seguem esse modelo porque:

✔️ São testáveis
✔️ São fáceis de manter
✔️ São preparados para crescer

Agora seu desafio é adaptar nosso plugin, já muito bem estruturado, a essa nova engenharia.

Navegação<< Permissões Customizadas e Controle de Acesso em Plugins WordPressAtualizações Automáticas via GitHub. >>

Não perca mais nenhuma atualização aqui!

Ative as Notificações!

Clique aqui e, em seguida, clique em Permitir na caixa que aparecerá na parte superior da janela, próximo à barra de endereços.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! Ao se tornar um assinante do WP24Horas, você terá acesso a:

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!

Não perca mais nenhuma atualização aqui!

Tabela de Conteúdo
PUBLICIDADE
Últimos Posts
Listagem e Detalhes de Posts WordPress com API REST no Next.js

Listagem de Posts e Roteamento Dinâmico no Next.js

Frontend com Next.js - Setup e Integração Inicial com WordPress

Frontend com Next.js: Setup e Integração Inicial

Configurando o WordPress como Backend Headless

Configurando o WordPress como Backend Headless

REST API do WordPress

REST API do WordPress: Visão Geral

Introdução ao WordPress Headless

Introdução ao WordPress Headless

Como Distribuir Seus Blocos Gutenberg em Plugins ou no GitHub

Distribuindo Seus Blocos: Plugins, Repositório e GitHub

Você precisa estar logado para ver esta informação.

Torne-se um Assinante e Eleve seu Conhecimento do WordPress!

Acesso Exclusivo, Suporte Especializado e Muito Mais.

Se você está aproveitando nosso conteúdo gratuito, vai adorar os benefícios exclusivos que oferecemos aos nossos assinantes! 

Não perca a oportunidade de maximizar seu potencial no WordPress. Clique no botão abaixo para se tornar um assinante e leve suas habilidades ao próximo nível!