Mit Travis CI auf Kompatibilität mit einer bestimmten PHP-Version prüfen

Mein Lazy-Loader-Plugin benötigt PHP 5.3 oder höher. Wenn sich User darauf verlassen, ist es ärgerlich, wenn durch eine Unachtsamkeit (wie etwa die Nutzung der []-Syntax für Arrays) in einem Patch- oder Minor-Release diese Mindestanforderung steigt.

Um sowas zu verhindern, lasse ich mit Travis CI jetzt jeden Release auf Kompatibilität mit PHP 5.3 testen.

Das Projekt PHPCompatibility für PHP_CodeSniffer ermöglicht es, Code auf Kompatibilität mit einer bestimmten PHP-Version zu testen (oder mit mehreren Versionen). Die Installation ist über Composer möglich und in der Readme des Projekts beschrieben. Bei mir sieht der require-dev-Teil der composer.json so aus:

"require-dev": {
    "squizlabs/php_codesniffer": "*",
    "wimg/php-compatibility": "*",
    "dealerdirect/phpcodesniffer-composer-installer": "^0.4.4"
},

Um jetzt die drei Klassen-Dateien meines Plugins im src-Verzeichnis zu testen, kann ich nach Ausführen von composer install folgenden Befehl verwenden, wenn ich mich im Hauptverzeichnis des Projekts befinde:

vendor/bin/phpcs -p src/ --standard=PHPCompatibility --runtime-set testVersion 5.3

Als Ergebnis bekomme ich optimalerweise ... 3 / 3 (100%) und nicht etwas wie .E. 3 / 3 (100%).

Dieser Befehl kann auch mit Travis CI genutzt werden. Der script-Teil aus der .travis.yml sieht so aus:

script:
- composer install
- vendor/bin/phpcs -p src/ --standard=PHPCompatibility --runtime-set testVersion 5.3

Wenn dabei nun ein Fehler auftritt, wird der Build abgebrochen und ich kann nicht mehr versehentlich die PHP-5.3-Kompatibilität beenden ?

Ihr findet das Lazy-Loader-Plugin auch auf GitHub, wo ihr euch die .travis.yml und composer.json anschauen könnt.

Das könnte auch interessant sein

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.