Construa qualquer coisa. Sem dar fork no core.

O AcelleMail é uma plataforma de email marketing Laravel 11+ com uma superfície de extensibilidade que vai bem além de callbacks. Drivers de envio, gateways de pagamento, agents de AI, páginas admin customizadas, slots de UI nível-página, endpoints REST, listeners de ciclo de vida — cada um deles entregue como plugin autocontido sob seu próprio namespace. Esta é a referência completa: onze deep-dives, source-grounded contra os code paths canônicos em storage/app/plugins/, App\Library\HookManager e app/Model/Plugin.php.

Comece pela foundation ↓ Hello World em 5 min
Superfícies de extensão
14
Padrões de hook
4
Páginas deep-dive
11
Tempo de leitura
~3h
Source-grounded
100%

Como usar esta documentação

Leia em ordem se está começando do zero — cada página se apoia na anterior. Caia numa única página da busca se você já sabe o que precisa: cada deep-dive se sustenta sozinho com seu próprio breadcrumb, sticky table of contents e navegação prev/next.

Toda afirmação em toda página é rastreada de volta a um arquivo-fonte sob a árvore de docs de plugin da plataforma (docs/plugin/, docs/sending-server-polymorphism/, docs/payment-order-plan-subscription-saas/) ou a implementação ao vivo em storage/app/plugins/Aurius/. Se uma afirmação não pode ser citada, é descartada — não parafraseada.

Tempo de leitura, ponta a ponta: ~3 horas. Para entregar um plugin real, planeje uma única tarde — o sample Hello World leva cinco minutos para fazer scaffold, e o exemplo trabalhado mais longo (um sending driver com Postal MTA) é cerca de uma hora de plugin:init até um teste de integração passando.

02 — BUILDING

Entregue uma feature real.

Exemplos trabalhados para os quatro padrões mais perguntados: um novo sending driver (Postal MTA), um gateway de pagamento regional (Paddle), uma superfície de UI admin customizada (o chatbox Aurius) e tabelas de banco isoladas por plugin.

Filosofia de design

O core declara extension points. Plugins reagem.
O core nunca sabe que seu plugin existe.

Inversão de dependência

Código do core nunca é importado por um plugin, e um plugin nunca é importado pelo core. O sistema de Hook se senta entre eles como o único contrato. Upgrade o core, seu plugin continua funcionando — enquanto o nome e a assinatura do hook permanecerem estáveis, o que a gente carimba com versão.

Quatro padrões, sem mais

REGISTRY, EVENT, BEHAVIOR, FILTER — os únicos verbos que o sistema de Hook fala. Semântica de conflito é explícita por padrão: REGISTRY merges, EVENT all-fire, FILTER chains, BEHAVIOR é exclusivo (dois callers lançam imediatamente, sem override silencioso).

Seu namespace, para sempre

Plugins vivem sob MyVendor\MyPlugin\, completamente isolados do namespace da plataforma core. Componha, venda, faça marca branca, dê fork — seu plugin é seu. A Licença Extended garante redistribuição comercial.

Fonte da verdade: o código

Toda página nesta árvore de docs linka o caminho de arquivo canônico de onde foi rastreada. Se um doc discorda do código, o código ganha — abra uma issue e a gente atualiza o doc, não o contrário. Sem copy-paste legado, sem APIs aspiracionais.

Abra o código. Estenda a plataforma.

PHP totalmente não encriptado. Updates vitalícios. O sistema de Hook. Plugins de produção reais para aprender. Licença única — sem assinaturas, sem taxa por assinante, sem namespace squatting.

Voltar para a landing de desenvolvedor