Entwickler-Übersicht
Diese Seite richtet sich an Plugin-Entwickler. MultiPurposeBlog ist nicht nur ein eigenständiges Blog-Plugin, sondern das Fundament eines Baukastens: Die Social-Media-Sub-Plugins (Meta, LinkedIn, Brevo) erweitern das hier definierte Datenmodell und nutzen die gemeinsamen Basisklassen für Server-Proxy, Uploads und die Admin-Integration.
Architektur in Kürze
Das Plugin gliedert sich in vier Ebenen:
Ebene | Ort | Inhalt |
|---|---|---|
Datenmodell |
| DAL-Definitionen, Entities, Collections, Aggregate |
Storefront-Server |
| Detail-Route, |
Erweiterungs-Framework |
| Abstrakter Proxy + Upload-Messenger-Framework für Sub-Plugins |
Administration |
| Vue-Modul, CMS-Elemente, TS-Basisklassen |
Eine detaillierte Aufschlüsselung findest du in den beiden Unterseiten:
Dependency-Stack
Paket | Typ | Rolle |
|---|---|---|
|
| Plattform |
|
| Registriert automatisch die Lizenzprüfung für Plugins unter dem |
|
| PHP-Dev-Tooling und |
| npm | Shims, |
Die Sub-Plugins (Meta, LinkedIn, Brevo) tragen ihrerseits leoparden/multi-purpose-blog als Dependency und aktivieren MultiPurposeBlog als Voraussetzung.
Fundament für die Sub-Plugins
Drei Bausteine dieses Plugins sind bewusst als Erweiterungspunkte angelegt:
ProxyController(src/Controller/ProxyController.php) — eine abstrakte Basis-Controller-Klasse. Jedes Sub-Plugin registriert einen eigenen Controller, der davon erbt, seinen OAuth-Provider konfiguriert und dieproxy()- undhandleUpload()-Methoden implementiert. Die Basisklasse liefert bereits Auth-Bridge-Handshake (verify/challenge/refresh), OAuth-Redirect, Upload-Endpunkt und Upload-Fortschritt (SSE).Upload-Framework (
src/Content/Message/UploadMessage+UploadMessageHandler) — eineUploadMessagewird über den Message-Bus dispatcht; der Handler routet sie anhand deshandler-Klassennamens an den passendenUploaderInterface(jeder Sub-Plugin-Controller). Der Fortschritt wird als serialisierte Datei im Flysystem abgelegt und per Server-Sent-Events an den Admin gestreamt.Admin-Basisklassen
PageProviderundoAuthProvider(…/module/leoparden-blog/service/) — abstrakte TypeScript-Klassen, von denen die Sub-Plugins ihren Provider ableiten (Login, Seitenverwaltung, Post-Erstellung).
Erweiterungspunkte
Erweiterung | Ansatzpunkt |
|---|---|
Eigenes Social-Media-Backend |
|
Blog-Seiten-Daten anpassen | Auf |
Eigenes CMS-Element für Beiträge |
|
Neuer Admin-Provider |
|