Entwicklungs-Umgebung
Die Einrichtung einer Entwicklungsumgebung für CMSimple_XH ist recht einfach: Ein Webserver mit PHP-Unterstützung und die CMSimple_XH-Quellen sind bereits ausreichend. Natürlich wird auch ein passender Editor benötigt. Wenn die eigenen Entwürfe auch in die allgemeine Entwicklung von CMSimple_XH einfließen sollen, wird zusätzlich ein Git-Client benötigt.
Anforderungen
- CMSimple_XH 1.7 und höher
- PHP ≥ 5.6, inklusive Interactive PHP Debugger (phpdbg)
- Webserver
- Git-Client (unter Windows wird TortoiseGit empfohlen, alternativ GitHub Desktop)
Um das CMSimple_XH-Build-System verwenden zu können (empfohlen), werden außerdem die folgenden Komponenten benötigt:
- Composer
- für PHP 5: runkit (runkit ≥ 1.0.4 für XH 1.7);
für PHP 7: uopz (nur für XH ≥1.7) - Doxygen
- Node.js mit npm
- JSDoc 3
Alle anderen Entwicklungsabhängigkeiten werden über Composer installiert.
Optional: Phan, das PHP 7.1 erfordert und die php-ast-Erweiterung.
Einrichten
- installiere PHP und den Webserver
- für PHP 5: installiere runkit, und füge
runkit.internal_override = 1
zur php.ini hinzu;
für PHP 7: installiere uopz - für XH 1.6: installiere phpDocumentor 1;
für XH 1.7: installiere Doxygen - installiere Node.js
- installiere JSDoc 3
- installiere Composer
- klone das CMSimple_XH-Repo von Github
- composer install im Stammverzeichnis des geklonten Repos ausführen
- füge vendor/bin zu PATH hinzu (in Windows: ".\vendor\bin")
Phing Targets
Das CMSimple_XH-Build-System wird von Phing unterstützt und bietet mehrere Targets, die im Folgenden beschrieben werden. Eine kurze Hilfe zu den verfügbaren Targets erhält man, indem phing ohne Parameter ausgeführt wird.
Statische Code-Analyse
phing sniff
Überprüft den Core und die internen Plugins (filebrowser, meta_tags und page_params) auf Verstöße gegen den Kodierungsstandard.
phing mess
Prüft auf unbenutzten Code. Nur im Master verfügbar, aber nicht in Release-Zweigen vor 1.6.
phing compat
Überprüft den Core und die Standard-Plugins auf Kompatibilität mit verschiedenen PHP-Versionen.
phing phan
Führt eine allgemeine, statische Code-Analyse durch. Für dieses Ziel muss der Befehl phan im Pfad vorhanden sein.
Test Suites
phing unit-tests
Führt die Unit-Testsuite aus. Derzeit erfordert dies eine „korrekte“ Konfiguration, insbesondere muss language_default auf 'en' gesetzt sein.
phing attack-tests
Führt die Angriffs-Testsuite aus. Dazu muss die Umgebungsvariable CMSIMPLEDIR auf den URL-Pfad der Entwicklungsinstallation gesetzt werden. Wenn die URL beispielsweise http://localhost/xh/ lautet, muss CMSIMPLEDIR auf /xh/ gesetzt werden (beachte die führenden und nachgestellten Schrägstriche).
phing validation-tests
Führt die Validierungs-Testsuite aus. CMSIMPLEDIR muss entsprechend eingestellt werden (siehe oben). Beachte, dass diese Testsuite den W3C-Validator verwendet, sodass die Tests manchmal fehlschlagen können, weil dieser Dienst nicht verfügbar ist.
phing all-tests
Kurzbefehl für die Ausführung aller drei Testsuiten.
Code-Überprüfung
phing coverage
Erzeugt einen Testbericht über die Code-Überprüfung auf der Grundlage der Unit-Test-Suite. Der Bericht befindet sich in tests/unit/coverage/.
Dokumentation
phing php-doc
Erzeugt die PHP-Dokumentation aus den Quellen und den Tutorials in tutorials/. Die Dokumentation befindet sich dann in doc/php/.
phing js-doc
Erzeugt die JS-Dokumentation aus den Quellen. Sie befindet sich in doc/js/.
phing doc
Ein Kurzbefehl, um die PHP- und JS-Dokumentation zu erstellen.
Building
phing -Dversion=<version> build
Erzeugt das vollständige Installationspaket als ZIP-Archiv im Stammverzeichnis, bereit für die Veröffentlichung.
phing -Dversion=<version> -Dpatchee=<filename> build-patch
Erzeugt ein Update-Paket als ZIP-Archiv im Stammordner, bereit zur Veröffentlichung. <Dateiname> sollte der Dateiname des vollständigen Installationspakets der Version sein, für die der Patch gebaut werden soll.
Wenn also zum Beispiel CMSimple_XH 1.7.6 veröffentlicht werden soll, führen wir Folgendes aus:
phing -Dversion="1.7.6" build phing -Dversion="1.7.6" -Dpatchee="CMSimple_XH-1.7.zip" build-patch mv "CMSimple_XH-1.7.6-patch.zip" "CMSimple_XH-update-1.7-to-1.7.6.zip" phing -Dversion="1.7.6" -Dpatchee="CMSimple_XH-1.7.5.zip" build-patch mv "CMSimple_XH-1.7.6-patch.zip" "CMSimple_XH-update-1.7.5-to-1.7.6.zip"
Fehlersuche
Wenn du Probleme hast, die Entwicklungsumgebung einzurichten oder die Phing-Targets auszuführen, kannst du dich an andere Entwickler im Open Development Bereich des CMSimple_XH Forums wenden. Wirf insbesondere einen Blick auf den Thread „How I ride the bullet - How I set up a testing environment?“
Glossar
Filebrowser
Plugin zur Verwaltung von Benutzer-Dateien. Der Filebrowser ist der Standard-Dateimanager von CMSimple_XH.
PHP
PHP = Hypertext Preprocessor, ursprünglich Personal Home Page Tools
PHP ist eine Skriptsprache, die häufig zur Erstellung dynamischer Websites verwendet wird.