0
50

SHARE

Como Criar um Plugin Profissional com Composer e PSR-4

Como Criar um Plugin WordPress com Composer e PSR-4 – WordPress Extremo Dia 1

Aprenda a estruturar um plugin profissional para WordPress usando Composer e PSR-4, com organização modular e boas práticas. Dia 1 da trilha WordPress Extremo.
Este post é a parte 1 de 10 da Série WordPress Extremo

Bora começar a Criar um Plugin Profissional de verdade? Aqui começa a virada de chave.

E aí, dev! Aqui é o Asllan, e hoje a gente dá o primeiro passo na jornada WordPress Extremo — que vai te levar do desenvolvimento intermediário àquele nível onde você realmente domina o WordPress como plataforma de engenharia, e não só como CMS.

A parada aqui é sair do functions.php, parar de empilhar função solta e começar a pensar como arquiteto de software.

Hoje vamos montar a estrutura base de um plugin desacoplado*, profissional, usando duas ferramentas poderosas do mundo PHP:

* Desacoplado (ou “desacoplamento”) é uma forma elegante de dizer que as partes do seu código não dependem diretamente umas das outras.


🧰 Antes de tudo: o que você precisa

Pra seguir comigo hoje, você precisa de um ambiente de desenvolvimento local já rodando WordPress.

Se você ainda não tem, pode usar:

E claro, é bom já ter uma noção básica de PHP, WordPress e saber onde fica o wp-content/plugins.


🛠️ O que vamos fazer hoje?

Hoje a gente vai criar um plugin do zero, mas não daquele jeito velho de juntar funções num arquivo só.

Vamos criar uma estrutura organizada, modular, com Composer e PSR-4.

Mas calma… que raios são Composer e PSR-4?

📦 Composer: o que é e por que usar?

O Composer é um gerenciador de dependências para PHP, tipo o “npm” do mundo PHP.

Mas além disso, ele cuida de carregar suas classes automaticamente sem você precisar escrever require_once toda hora.

Com ele, você escreve sua estrutura como um profissional e deixa o Composer se virar com o resto.

🧠 PSR-4: o que significa?

PSR-4 é um padrão de autoloading definido pela comunidade PHP (PHP-FIG). Ele diz assim:

“Se sua classe se chama Wp24h\Services\MinhaClasse, ela precisa estar na pasta src/Services/MinhaClasse.php.”

Ou seja, ele liga o namespace da sua classe com o caminho do arquivo — e o Composer entende isso e carrega tudo pra você.
Nada de require_once. Tudo limpo, automático e profissional.


🚀 Mão na massa: Criando nosso Plugin Desacoplado

1. Crie a pasta do plugin

Primeiramente, no seu wp-content/plugins, crie uma pasta:

wp-arquitetura-extrema/

2. Inicie o Composer

Navegue até essa pasta no terminal e execute:

composer init

Pode aceitar os padrões sugeridos, mas na parte do autoload a gente vai mexer manualmente.


3. Configure o autoload PSR-4

No composer.json, adicione isso:

"autoload": {
  "psr-4": {
    "WpArquiteturaExtrema\\": "src/"
  }
}

Isso quer dizer: “Composer, toda vez que eu chamar uma classe que começa com WpArquiteturaExtrema\, procure dentro da pasta src/”.

Depois disso, rode:

composer dump-autoload

Pronto! Agora qualquer classe que você criar com esse namespace e dentro da pasta src vai ser automaticamente carregada.


4. Estrutura do plugin

Desse modo, vamos organizar o plugin assim:

wp-arquitetura-extrema/
├── composer.json
├── vendor/
├── wp-arquitetura-extrema.php
└── src/
    ├── Hooks/
    │   └── Init.php
    ├── Services/
    └── Repositories/

Essa estrutura vai crescer muito ainda — mas hoje a gente vai só ativar um hook básico desacoplado.


5. Criando nosso Primeiro hHook com Classe

src/Hooks/Init.php

<?php
namespace WpArquiteturaExtrema\Hooks;

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

    public function say_hello() {
        error_log('WordPress Arquitetura Extrema iniciada!');
    }
}

6. Arquivo principal do plugin

wp-arquitetura-extrema.php

<?php
/**
 * Plugin Name: WP Arquitetura Extrema
 * Description: Plugin com arquitetura organizada seguindo boas práticas
 * Version: 1.0.0
 * Author: Asllan Maciel
 * License: GPL2
 */

defined('ABSPATH') or die('No script kiddies please!');

if (file_exists(__DIR__ . '/vendor/autoload.php')) {
    require_once __DIR__ . '/vendor/autoload.php';
}

use WpArquiteturaExtrema\Hooks\Init;

(new Init())->register();

defined('ABSPATH') or die(...); é uma proteção simples e eficaz pra garantir que seus arquivos PHP só rodem dentro do WordPress — e nunca diretamente pelo navegador.


7. Ativando o debug para testar

No seu wp-config.php, ative:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Depois de ativar o plugin, veja se aparece no arquivo wp-content/debug.log:

WordPress Arquitetura Extrema iniciada!

Se sim, tudo funcionou! 🎉


📚 O que aprendemos hoje

  • Como criar a estrutura de um plugin desacoplado
  • O que são Composer e PSR-4, e como usar no WordPress
  • Como organizar seu código com padrão profissional
  • Como acionar hooks com classes ao invés de funções soltas

🧭 E agora?

Esse é só o começo. No Dia 2, a gente vai criar classes de serviço e delegar funções, seguindo princípios de Clean Code e separação de responsabilidades.


💬 Bora trocar ideia?

Ficou com dúvida sobre Composer, PSR-4 ou estrutura de plugin?

Comenta aí ou me chama nas redes:
👉 @wp24horas


🎓 Quer se aprofundar mesmo?

Se você quiser acelerar sua evolução, temos:

  • Mentoria Técnicas Personalizadas
  • Cursos voltados para WordPress Profissional
  • Acompanhamento para Criar Produtos e Serviços com WP

👉 Em breve aqui no wp24horas.com.br

NavegaçãoComo Usar Serviços em Plugins para Código Limpo e Desacoplado – WordPress Extremo Dia 2 >>

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
Adicionando Imagem Ícone e Classe CSS Personalizada em Bloco Gutenberg

Ícones, Imagens e Classes Personalizadas no Gutenberg

Atributos Visuais e Estilo Dinâmico com Gutenberg

Cor, Alinhamento e Estilo Dinâmico com Gutenberg + React

Como Estilizar Blocos Gutenberg com CSS e Classes Dinâmicas

Estilizando Blocos Gutenberg com CSS e Classes Dinâmicas

Criando Campos Dinâmicos e InspectorControls no Gutenberg

Campos Dinâmicos e InspectorControls no Gutenberg: Deixe Seu Bloco Interativo

Criando Blocos Personalizados com Gutenberg e React

Criando Blocos Personalizados com Gutenberg e React

Como Criar Comandos WP-CLI Personalizados para Plugins

Criando Comandos WP-CLI Personalizados para Plugins WordPress

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!