Entwicklungsumgebung
Was man zum Bauen und Testen des Moduls lokal braucht.
Voraussetzungen
| Komponente | Version | Hinweise |
|---|---|---|
| PHP | 8.3+ | dieselbe Version, mit der die webtrees-Instanz läuft |
| Composer | 2.x | installiert wt-shared-libs + phpstan |
| Node.js | 18+ (LTS) | für Gulp / Rollup / Mocha |
| webtrees | 2.2.x oder 2.3.x | nötig für PHPStan (app/-Klassen) und die Smoke-Tests |
| wt-shared-libs | neueste Version | Schwester-Repo unter modules_v4/wt-shared-libs (Composer-Path-Repo) |
Lage
Das Modul liegt innerhalb einer webtrees-Installation unter modules_v4/linkenhancer/. Sein composer.json
zieht die Schwester-Bibliothek als lokales Path-Repository ein:
"repositories": [
{ "type": "path", "url": "../wt-shared-libs", "options": { "symlink": false } }
]
Einrichtung
# PHP-Abhängigkeiten (installiert wt-shared-libs + phpstan)
composer install
# JS-Abhängigkeiten (gulp, rollup, mocha, …)
npm ci
Hinweis:
composer.jsonsetztprepend-autoloader: false— der Autoloader des Moduls wird an den Autoloader von webtrees angehängt (nicht ersetzt).
Bind-Mount
Im aktuellen Setup wird auf Linux mit nativ installiertem Apache Webserver entwickelt. Der Quellbaum der PHP-Laufzeit wird über einen Bind-Mount der Repo-Ordner unterhalb von modules_v4 bereitgestellt. Die CLI-Tools und PHPStan müssen vom Mount-Pfad aus ausgeführt werden (den Pfad, den die webtrees-Instanz sieht), nicht vom Quellpfad, damit app/ und vendor/autoload.php richtig auflösen:
cd /path/to/webtrees/modules_v4/linkenhancer
composer analyse
Die genauen Befehle stehen auf den Seiten CLI-Skripte und PHPStan.