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.
Um das CMSimple_XH-Build-System verwenden zu können (empfohlen), werden außerdem die folgenden Komponenten benötigt:
Alle anderen Entwicklungsabhängigkeiten werden über Composer installiert.
Optional: Phan, das PHP 7.1 erfordert und die php-ast-Erweiterung.
runkit.internal_override = 1
zur php.ini hinzu;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.
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.
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.
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/.
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.
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"
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?“