Konfiguration für QA- und Entwicklungstools speziell für die Codierungsstandards bei LoVullo Associates. Dieses Paket soll in Kombination mit lovullo/phpqatools
eine Basis für neue PHP-Projekte sein.
Benötigen Sie es einfach in composer.json
Ihres Projekts
"require-dev" : {
"lovullo/phpqaconfig" : " @stable "
}
Oder
$ composer require --dev lovullo/phpqaconfig
Erstellen Sie in Ihrem Projektstammverzeichnis eine build.xml
-Datei mit folgendem Inhalt:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Erstellen Sie eine phpunit.xml
Datei in Ihrem Projektstammverzeichnis mit folgendem Inhalt:
<? xml version = " 1.0 " encoding = " UTF-8 " ?>
< phpunit verbose = " true " >
< testsuites >
< testsuite name = " ProjectName " >
< directory suffix = " Test.php " >tests/</ directory >
</ testsuite >
</ testsuites >
< logging >
< log type = " coverage-html " target = " build/coverage " />
< log type = " coverage-clover " target = " build/logs/clover.xml " />
< log type = " coverage-crap4j " target = " build/logs/crap4j.xml " />
< log type = " junit " target = " build/logs/junit.xml " logIncompleteSkipped = " false " />
</ logging >
</ phpunit >
Lesen Sie den Abschnitt „Anpassen“ weiter unten, wenn Sie an anderer Stelle über eine bestehende PHPUnit-Konfiguration verfügen.
Verwenden Sie bei der Entwicklung die folgenden Ameisenziele:
Zum Beispiel:
$ ant phpcs phpmd phpcpd
Bei der Konfiguration von Continuous Integration (z. B. Jenkins) muss composer
dieses Repo herunterladen und installieren, bevor Sie ant
-Aufgaben ausführen können. Fügen Sie Jenkins mit dem folgenden Befehl einen Build-Schritt „Execute Shell“ hinzu:
$ composer install -o
Fügen Sie als Nächstes einen Build-Schritt „Invoke Ant“ mit dem folgenden Ziel hinzu:
build-qa
Dadurch werden check_mergeconflicts
, phplint
, phpunit
, phpcs-ci
, pdepend
, phpmd-ci
, phpcpd-ci
, phploc-ci
und phpdox
ausgeführt.
Für Jobs, die schnell ausgeführt werden müssen und nur eine minimale Anzahl von QA-Prüfungen erfordern, führen Sie stattdessen die folgenden Ziele aus:
build-quick
Dadurch werden check_mergeconflicts
, phplint
und phpunit
ausgeführt.
Fügen Sie Ihrer build.xml
Datei je nach Bedarf für Ihr spezielles Projekt zusätzliche Build-Ziele hinzu.
Die enthaltene build.xml
geht davon aus, dass alle QA-Tools in ./vendor/bin
installiert sind. Wenn sie an anderer Stelle installiert sind, stellen Sie eine toolsdir
Eigenschaft für ihren Speicherort bereit:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " toolsdir " value = " ${basedir}/bin/ " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Standardmäßig führt die enthaltene build.xml
php -l
für alle PHP-Dateien im Projekt aus, mit Ausnahme des vendor/
-Verzeichnisses im Stammverzeichnis Ihres Projekts. Sie können diese Einstellung mit der Eigenschaft phplintignore
überschreiben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phplintignore " value = " components/**/*,vendor/**/* " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Standardmäßig geht die enthaltene build.xml
davon aus, dass sich eine phpunit.xml
Datei im selben Verzeichnis wie sie selbst befindet. Wenn Sie bereits eine phpunit.xml
Datei an einer anderen Stelle haben, können Sie die Konfiguration wie folgt überschreiben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phpunitconfig " value = " ${basedir}/app/ " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Sie können die Dateien anpassen, die bei phpcs
Prüfungen ignoriert werden, indem Sie eine phpcsignore
Eigenschaft angeben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phpcsignore " value = " app/,bin/,vendor/,web/ " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Standardmäßig ist nur das vendor
von Prüfungen ausgeschlossen.
Sie können ändern, was der PHP_CodeSniffer-Standard verwendet, indem Sie die Eigenschaft phpcsstandard
überschreiben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phpcsstandard " value = " PSR1,PSR2 " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Sie können die Dateien anpassen, die bei phpmd
Prüfungen ignoriert werden, indem Sie eine phpmdignore
-Eigenschaft angeben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phpmdignore " value = " app,bin,vendor,web " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Standardmäßig ist nur das vendor
von Prüfungen ausgeschlossen.
Sie können die Dateien anpassen, die bei phpcpd
Prüfungen ignoriert werden, indem Sie eine phpcpdignore
Eigenschaft angeben:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " phpcpdignore " value = " --exclude vendor --exclude app " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >
Standardmäßig ist nur das vendor
von Prüfungen ausgeschlossen.
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< phpdox xmlns = " http://xml.phpdox.net/config " silent = " true " >
< bootstrap />
< project name = " phpdox " source = " ${basedir}/src " workdir = " ${basedir}/build/phpdox/xml " >
< collector publiconly = " false " backend = " parser " >
< include mask = " *.php " />
< inheritance resolve = " true " />
</ collector >
< generator output = " ${basedir}/build/docs " >
< enrich base = " ${basedir}/build " >
< source type = " build " />
< source type = " phploc " >
< file name = " logs/phploc.xml " />
</ source >
< source type = " git " >
< git binary = " git " />
< history enabled = " true " limit = " 15 " cache = " ${phpDox.project.workdir}/gitlog.xml " />
</ source >
< source type = " checkstyle " >
< file name = " logs/checkstyle.xml " />
</ source >
< source type = " phpunit " >
< file name = " logs/phpunit " />
</ source >
< source type = " pmd " >
< file name = " logs/pmd.xml " />
</ source >
</ enrich >
< build engine = " html " enabled = " true " output = " html " >
< template dir = " ${phpDox.home}/templates/html " />
< file extension = " html " />
</ build >
</ generator >
</ project >
</ phpdox >
Wenn Sie nicht möchten, dass bestimmte QA-Tools für ein Projekt ausgeführt werden, fügen Sie eine oder mehrere der folgenden disable
hinzu, bevor Sie die Basisdatei build.xml
einschließen:
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< property name = " disable-phpunit " value = " true " />
< property name = " disable-pdepend " value = " true " />
< property name = " disable-phpmd " value = " true " />
< property name = " disable-phpcs " value = " true " />
< property name = " disable-phpcpd " value = " true " />
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
</ project >