Runtime-Auswahl
FG Core ist so aufgebaut, dass mehrere FUNCKGROUP-Plugins jeweils eine eingebettete Core-Kopie mitbringen können. Der Bootstrap sammelt diese Kandidaten und startet anschließend genau eine Runtime.
Registrierung eines Core-Kandidaten
Section titled “Registrierung eines Core-Kandidaten”Jede Kopie liest ihr manifest.php. Für einen gültigen Kandidaten müssen folgende Angaben vorhanden sein:
versionapi_versiongrößer oder gleich1requires_php- lesbare
entry_file
Version 1.1.3 verwendet:
[ 'version' => '1.1.3', 'api_version' => 1, 'requires_php' => '7.4', 'entry_file' => __DIR__ . '/src/class-fg-admin-core.php',]Ein fehlendes oder ungültiges Manifest wird als Loader-Fehler erfasst. Eine Core-Kopie, deren PHP-Anforderung nicht erfüllt ist, wird nicht als nutzbarer Kandidat gestartet.
Auswahl der aktiven Version
Section titled “Auswahl der aktiven Version”Auf plugins_loaded mit Priorität -9999 sortiert der Loader die gefundenen Kandidaten nach:
- höherer
version - höherer
api_version, wenn die Version gleich ist - Provider-Name als deterministischer Tie-Breaker
Der erste Kandidat dieser Sortierung wird gestartet.
Laufzeit-Konstanten
Section titled “Laufzeit-Konstanten”Vor dem Laden der Runtime definiert der Bootstrap, sofern noch nicht vorhanden:
FG_CORE_VERSIONFG_CORE_API_VERSIONFG_CORE_PROVIDER
Nach erfolgreichem Start wird die Action fg_core_loaded ausgelöst.
Früh registrierte Plugins
Section titled “Früh registrierte Plugins”fg_core_register_plugin() kann aufgerufen werden, bevor die Runtime gestartet ist. In diesem Fall wird die Registrierung im globalen Loader-State zwischengespeichert und beim Booten an die aktive AdminCore-Instanz übergeben.
Nach dem Core-Start leitet die Funktion neue Registrierungen direkt an AdminCore::register_plugin() weiter.
Rückwärtskompatibilität
Section titled “Rückwärtskompatibilität”Die Runtime stellt den Alias FG_Admin_Core für Funckgroup\FGCore\AdminCore bereit, sofern der alte Klassenname noch nicht existiert.
Der Bootstrap erkennt zusätzlich den Fall, dass bereits eine andere Klasse unter FG_Admin_Core geladen wurde, und hinterlegt dazu einen Loader-Fehler. Die Meldung weist darauf hin, ältere Integrationen auf den Bootstrap-Loader umzustellen.
Grenzen
Section titled “Grenzen”Die Auswahl berücksichtigt nur Kandidaten, deren Bootstrap tatsächlich von einem geladenen Plugin eingebunden wurde. FG Core lädt zur Laufzeit keine neue Version aus GitHub oder Composer nach und ersetzt keine PHP-Dateien auf der WordPress-Installation.