0
62

SHARE

Como Usar Repositórios em Plugins para Separar Lógica de Dados

Como Usar Repositórios em Plugins para Separar Lógica de Dados – WordPress Extremo Dia 3

Aprenda a organizar melhor seu plugin WordPress usando repositórios para separar a lógica de acesso a dados. Arquitetura limpa e manutenção facilitada.
Este post é a parte 3 de 18 da Série WordPress Extremo

E aí, dev! Aqui é o Asllan, e no Dia 3 da nossa jornada WordPress Extremo, vamos dar mais um passo rumo à arquitetura sólida: separar a lógica de acesso a dados usando a famosa camada de Repositórios.

Talvez você esteja se perguntando:

“Mas Asllan, WordPress já tem $wpdb, get_posts()… pra quê repositório?”

Eu te explico 👇


🧠 O que é um Repositório?

Um Repositório é uma classe responsável por centralizar o acesso aos dados.

Em vez de espalhar chamadas ao banco ou queries por todo o código, você coloca tudo em um único lugar, organizado e com nomes claros.

🧽 Resultado:

  • Código mais limpo
  • Fácil de testar
  • Fácil de trocar o tipo de armazenamento depois (ex: REST API, banco externo, etc.)

🎯 Exemplo no contexto WordPress:

Imagine que seu plugin precisa listar todos os usuários com role editor.

📉 Forma “bagunçada”:

$users = get_users(['role' => 'editor']);

Você repete isso em vários lugares.


📦 Forma com repositório:

$repository = new UserRepository();
$editors = $repository->getEditors();

Agora a lógica está isolada, limpa e pronta pra crescer.


🧰 Mão na massa – Criando nosso primeiro Repository

Estrutura de pastas:

/src
  /Hooks
    - Init.php
  /Services
    - HelloService.php
  /Repositories
    - UserRepository.php

UserRepository.php

<?php
namespace WpArquiteturaExtrema\Repositories;

class UserRepository {
    public function getEditors() {
        return get_users([
            'role' => 'editor'
        ]);
    }
}

HelloService.php (atualizado pra usar o repo)

<?php
namespace WpArquiteturaExtrema\Services;

use WpArquiteturaExtrema\Repositories\UserRepository;

class HelloService {
    public function execute() {
        $repo = new UserRepository();
        $editors = $repo->getEditors();

        foreach ($editors as $user) {
            error_log("Editor encontrado: " . $user->display_name);
        }
    }
}

Init.php continua igual:

namespace WpArquiteturaExtrema\Hooks;

use WpArquiteturaExtrema\Services\HelloService;

class Init {
    public function register() {
        add_action('init', [$this, 'init_plugin']);
    }

    public function init_plugin() {
        $service = new HelloService();
        $service->execute();
    }
}

🧠 Conclusão do Dia 3

  • Usamos a camada de Repositório pra isolar o acesso a dados
  • Evitamos acoplamento entre service e query
  • Preparamos o terreno pra evoluir pra APIs, filtros avançados, cache, etc.

🔜 Próximo passo: Dia 4

Amanhã vamos introduzir injeção de dependência manual para facilitar ainda mais a arquitetura, criando um container simples de serviços.

Navegação<< Como Usar Serviços em Plugins para Código Limpo e Desacoplado – WordPress Extremo Dia 2Injeção de Dependência Manual em Plugins WordPress – WordPress Extremo Dia 4 >>

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
Segurança Profunda em Plugins WordPress

Segurança Profunda em Plugins WordPress

Como Tratar Erros e Exceptions em Plugins WordPress do Jeito Certo

Tratamento de Erros e Uso Inteligente de Exceptions em Plugins WordPress

Como Implementar um Sistema de Logs Profissional em Plugins WordPress

Como Gerenciar Logs e Erros Internos em Plugins WordPress (Do Jeito Certo)

Como Criar um Bloco WordPress com Filtro por Múltiplas Categorias

Bloco de Posts com Filtro por Múltiplas Categorias

Como Filtrar Posts por Categoria em um Bloco Gutenberg

Filtrando Posts por Categoria no Editor do Bloco

Como Criar um Bloco Dinâmico no WordPress com Renderização PHP

Bloco Dinâmico com Renderização no Servidor

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!