Erste Schritte
FG Core ist für die Einbettung in FUNCKGROUP-WordPress-Plugins vorgesehen. Die Runtime liegt im ausgelieferten Plugin unter includes/fg-core/; Composer oder ein GitHub-Zugriff werden auf der WordPress-Installation nicht benötigt.
Systemvoraussetzungen
Section titled “Systemvoraussetzungen”- WordPress 6.0 oder neuer laut Header des mitgelieferten Referenz-Plugins
- PHP 7.4 oder neuer
- lesbarer Ordner
includes/fg-core/im einbindenden Plugin - WordPress-Cron, wenn die automatische Installations-Statusmeldung planmäßig ausgeführt werden soll
- ausgehende HTTPS-Verbindungen zum konfigurierten Status-Endpunkt, sofern die Statusmeldung aktiviert bleibt
Integration in ein Plugin
Section titled “Integration in ein Plugin”1. FG Core einbetten
Section titled “1. FG Core einbetten”Die Runtime muss im Plugin unter folgendem Pfad vorhanden sein:
mein-plugin/└── includes/ └── fg-core/ ├── bootstrap.php ├── manifest.php ├── assets/ └── src/2. Bootstrap früh laden
Section titled “2. Bootstrap früh laden”Die Plugin-Hauptdatei lädt zuerst den Core-Bootstrap:
$core_bootstrap = MY_PLUGIN_DIR . 'includes/fg-core/bootstrap.php';
if (is_readable($core_bootstrap)) { require_once $core_bootstrap;}3. Plugin-eigene Klassen laden
Section titled “3. Plugin-eigene Klassen laden”Die Fachlogik bleibt im Plugin. FG Core stellt keine automatische Klassenladung für das einbindende Plugin bereit.
4. Plugin registrieren
Section titled “4. Plugin registrieren”Eine einzelne Admin-Seite kann über callback registriert werden:
fg_core_register_plugin([ 'slug' => 'my-plugin', 'title' => 'My Plugin', 'menu_title' => 'My Plugin', 'description' => 'Beschreibung.', 'callback' => [$this, 'render_page'], 'version' => MY_PLUGIN_VERSION, 'plugin_file' => MY_PLUGIN_FILE,]);Für mehrere Bereiche wird tabs verwendet. Ein vollständiges Beispiel steht unter Admin-Integration.
Entwicklung mit Composer
Section titled “Entwicklung mit Composer”Das Root-Paket ist als Composer-Library funckgroup/fg-core definiert. Für die Entwicklung kann FG Core als private Entwicklungsabhängigkeit installiert und danach in den festen Runtime-Pfad synchronisiert werden.
Beispiel aus dem Projekt:
composer require --dev funckgroup/fg-core:^1.1composer fg-core:syncFür spätere Updates:
composer update funckgroup/fg-coreDas mitgelieferte Sync-Skript sucht die Core-Quelle unter anderem in der Composer-Installation und kopiert sie nach includes/fg-core/. Alternativ kann FG_CORE_SOURCE auf einen lokalen Checkout zeigen.
FG_CORE_SOURCE=/pfad/zu/fg-core/includes/fg-core composer fg-core:syncWeitere unterstützte Umgebungsvariablen des Sync-Skripts:
FG_CORE_PROJECT_ROOT– überschreibt das erkannte ProjektverzeichnisFG_CORE_TARGET– überschreibt das ZielverzeichnisFG_CORE_SOURCE– priorisierte Quellstruktur für die Runtime
Erste Prüfung nach der Integration
Section titled “Erste Prüfung nach der Integration”- WordPress-Admin öffnen.
- Prüfen, ob das Hauptmenü FUNCKGROUP erscheint.
- Prüfen, ob das registrierte Plugin als Untermenü und auf der Übersichtsseite erscheint.
- Bei mehreren Tabs prüfen, ob der konfigurierte Standard-Tab geöffnet wird.
- Prüfen, ob nur Benutzer mit der erforderlichen Capability Zugriff erhalten.
- Bei mehreren FUNCKGROUP-Plugins prüfen, welche FG-Core-Version als aktive Runtime angezeigt wird.
- Falls die Statusmeldung aktiviert ist, WP-Cron und die Erreichbarkeit des Status-Endpunkts prüfen.
Das Referenz-Plugin enthält einen Diagnose-Tab, der aktive Core-Version, API-Version, Provider, registrierte Plugins sowie WordPress- und PHP-Version anzeigt.
Aktivierung und Deaktivierung
Section titled “Aktivierung und Deaktivierung”FG Core besitzt keinen eigenen Aktivierungs- oder Deaktivierungs-Hook. Die Runtime wird beim normalen Laden des einbindenden Plugins initialisiert.
Die Statusmeldung plant ihren Cronjob bei init, falls die Funktion aktiviert und noch kein entsprechendes Ereignis vorhanden ist.
Deinstallation des Referenz-Plugins
Section titled “Deinstallation des Referenz-Plugins”uninstall.php des Referenz-Plugins löscht ausschließlich die Beispiel-Option:
fg_core_dummy_example_textDie von der eingebetteten Statusmeldung angelegten fg_core_*-Optionen sowie ein eventuell geplanter Cronjob werden von dieser Deinstallationsroutine nicht entfernt. Dieser Punkt ist auch in der internen REVIEW.md vermerkt.