wt-shared-libs
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:
| Komponente | Namespace | Funktion |
|---|---|---|
Functions.php | Helpers | 15 versionsabhängige Static-Helper — Versionsprüfung, Routen, privatisierte Daten, DataTables-Normalisierung, HTTP-Statuscodes |
ClassName.php | Helpers | versionsunabhängige webtrees-Klassennamen — get / isInstanceOf + 2.2/2.3-Konstanten |
MoreI18N.php | Helpers | Übersetzung — translate für eigene Strings, xlate für Strings, die bereits vom webtrees-Core abgedeckt sind |
CliBootstrap.php | Services | CLI-Bootstrap — boot / guard + Offline-Erkennung |
ModuleLog.php | Services | Modul-Singleton-Logger — error / debug / trace |
ModuleCustomTrait.php | Traits | Custom-Module-Metadaten — Autor, Version, URLs, customTranslations |
autoload.php | – | der Loader (siehe unten) |
Vollständige Methoden-API:
reference.mdim 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
.
Weiterführende Links
- API-Referenz —
reference.md - Mitwirken / neue Klasse —
contributing.md - Changelog —
CHANGELOG.md - Issues & PRs auf Codeberg