Construisez n'importe quoi. Sans forker le cœur.

AcelleMail est une plateforme d'email marketing Laravel 11+ avec une surface d'extensibilité qui va bien au-delà des callbacks. Drivers d'envoi, passerelles de paiement, agents IA, pages admin personnalisées, slots UI au niveau page, endpoints REST, listeners de cycle de vie — chacun d'eux est livré comme un plugin auto-contenu sous votre propre namespace. Ceci est la référence complète : onze deep-dives, ancrés sur le code source par rapport aux chemins canoniques dans storage/app/plugins/, App\Library\HookManager et app/Model/Plugin.php.

Commencez par la fondation ↓ Hello World en 5 min
Surfaces d'extension
14
Patterns de hooks
4
Pages deep-dive
11
Temps de lecture
~3 h
Ancré sur le code
100 %

Comment utiliser cette documentation

Lisez dans l'ordre si vous débutez — chaque page se construit sur la précédente. Atterrissez sur une seule page depuis la recherche si vous savez déjà ce dont vous avez besoin : chaque deep-dive se suffit à lui-même avec son propre fil d'Ariane, sa table des matières collante et sa navigation précédent/suivant.

Chaque affirmation sur chaque page est retracée jusqu'à un fichier source sous l'arborescence de docs plugin de la plateforme (docs/plugin/, docs/sending-server-polymorphism/, docs/payment-order-plan-subscription-saas/) ou l'implémentation live storage/app/plugins/Aurius/. Si une affirmation ne peut pas être citée, elle est abandonnée — non paraphrasée.

Temps de lecture, de bout en bout : ~3 heures. Pour livrer un vrai plugin, prévoyez un seul après-midi — l'exemple Hello World prend cinq minutes à scaffolder, et l'exemple détaillé le plus long (un driver d'envoi avec Postal MTA) est d'environ une heure de plugin:init jusqu'à un test d'intégration qui passe.

02 — CONSTRUCTION

Livrez une vraie fonctionnalité.

Exemples détaillés pour les quatre patterns les plus demandés : un nouveau driver d'envoi (Postal MTA), une passerelle de paiement régionale (Paddle), une surface admin UI personnalisée (le chatbox Aurius) et des tables de base de données isolées par plugin.

Philosophie de conception

Le cœur déclare les points d'extension. Les plugins réagissent.
Le cœur ne sait jamais que votre plugin existe.

Inversion de dépendance

Le code du cœur n'est jamais importé par un plugin, et un plugin n'est jamais importé par le cœur. Le système de Hooks se tient entre eux comme seul contrat. Mettez à jour le cœur, votre plugin continue de fonctionner — tant que le nom et la signature du hook restent stables, ce que nous estampillons en version.

Quatre patterns, pas plus

REGISTRY, EVENT, BEHAVIOR, FILTER — les seuls verbes que le système de Hooks parle. La sémantique de conflit est explicite par pattern : REGISTRY fusionne, EVENT déclenche tous, FILTER enchaîne, BEHAVIOR est exclusif (deux appelants lèvent immédiatement, pas d'override silencieux).

Votre namespace, pour toujours

Les plugins vivent sous MyVendor\MyPlugin\, complètement isolés du namespace de la plateforme cœur. Composez, vendez, white-label, forkez — votre plugin est à vous. La licence Extended accorde la redistribution commerciale.

Source de vérité : le code

Chaque page de cet arbre de documentation référence le chemin de fichier canonique d'où elle a été tracée. Si une doc est en désaccord avec le code, le code gagne — ouvrez une issue et nous mettrons à jour la doc, pas l'inverse. Pas de copier-coller hérité, pas d'API aspirationnelles.

Ouvrez le source. Étendez la plateforme.

PHP complet non chiffré. Mises à jour à vie. Le système de Hooks. De vrais plugins de production dont apprendre. Licence unique — pas d'abonnements, pas de frais par abonné, pas de squatting de namespace.

Acheter la licence Extended — 199 $ Retour à la landing développeur