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"
},
Code-Sprache: JSON / JSON mit Kommentaren (json)
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:
Code-Sprache: Bash (bash)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
Code-Sprache: YAML (yaml)
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.