wt-shared-libs

Gemeinsame PHP-Bibliothek für benutzerdefinierte webtrees-Module

License: GPL v3 webtrees major version

wt-shared-libs ist die gemeinsame PHP-Bibliothek hinter den benutzerdefinierten Modulen LinkEnhancer und Cronjob. Sie sorgt dafür, dass zwei webtrees-Hauptversionen (2.2 und 2.3) nebeneinander funktionieren: versionsabhängige Klassen, Methoden und Signaturen werden hier einmal gekapselt, statt in jedem Modul dupliziert.

Teile und insbesondere die Laderoutine sind von dem ähnlichen Paket Jefferson49/webtrees-common inspiriert.

Was ist drin

Alles liegt unter der PSR-4-Root Schwendinger\Webtrees\. Die vollständige Methoden-API ist im Repository dokumentiert — diese Seite dient nur als Überblick:

KomponenteNamespaceFunktion
Functions.phpHelpers15 versionsabhängige Static-Helper — Versionsprüfung, Routen, privatisierte Daten, DataTables-Normalisierung, HTTP-Statuscodes
ClassName.phpHelpersversionsunabhängige webtrees-Klassennamen — get / isInstanceOf + 2.2/2.3-Konstanten
MoreI18N.phpHelpersÜbersetzung — translate für eigene Strings, xlate für Strings, die bereits vom webtrees-Core abgedeckt sind
CliBootstrap.phpServicesCLI-Bootstrap — boot / guard + Offline-Erkennung
ModuleLog.phpServicesModul-Singleton-Logger — error / debug / trace
ModuleCustomTrait.phpTraitsCustom-Module-Metadaten — Autor, Version, URLs, customTranslations
autoload.php–der Loader (siehe unten)

Vollständige Methoden-API: reference.md im Repository.

So funktioniert der Loader

autoload.php ist ein skew-toleranter Loader: Er vergleicht die vom Modul mitgelieferte Lib-Version mit der im webtrees-Root installierten Version und lässt immer die neueste Kopie gewinnen — so kann eine veraltete, gebündelte Kopie eine neuere Site-Ebene niemals überschatten. Eine Regel für Konsumenten: die Lib nicht im __construct() der Modul-Klasse laden — das kann die Autoload-Reihenfolge verändern. Die vollständigen Prämissen und der Beweis stehen in reference.md .

Schnellstart (als konsumierendes Modul)

Ein Path-Repository im composer.json des Moduls ergänzen und den Loader in der eigenen Lade-Routine registrieren (nach den anderen Composer-Libraries):

"repositories": [
    { "type": "path", "url": "../wt-shared-libs", "options": { "symlink": false } }
],
"require": {
    "bschwede/wt-shared-libs": "^1.0"
},
"config": {
    "prepend-autoloader": false
}

Releases

Releases werden per Git-Tag versioniert; das Tag entspricht immer dem version-Feld im composer.json (ohne v-Präfix). Siehe CHANGELOG.md .

Zuletzt geändert 08.11.2026: cross-links (a039666)