Configuration pour les outils d'assurance qualité et de développement spécifiques aux normes de codage chez LoVullo Associates. Ce package, combiné avec lovullo/phpqatools
est destiné à être une base pour de nouveaux projets PHP.
Exigez-le simplement dans composer.json
de votre projet
"require-dev" : {
"lovullo/phpqaconfig" : " @stable "
}
Ou
$ composer require --dev lovullo/phpqaconfig
Créez un fichier build.xml
à la racine de votre projet avec le contenu suivant :
xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
project >
Créez un fichier phpunit.xml
à la racine de votre projet avec le contenu suivant :
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 >
Consultez la section "Personnalisation" ci-dessous si vous disposez d'une configuration PHPUnit existante ailleurs.
Lors du développement, utilisez les cibles de fourmis suivantes :
Par exemple:
$ ant phpcs phpmd phpcpd
Lors de la configuration de l'intégration continue (c'est-à-dire Jenkins), composer
doit télécharger et installer ce référentiel avant de pouvoir exécuter des tâches ant
. Ajoutez une étape de build « Execute Shell » à Jenkins avec la commande suivante :
$ composer install -o
Ensuite, ajoutez une étape de build « Invoke Ant » avec la cible suivante :
build-qa
Cela exécutera check_mergeconflicts
, phplint
, phpunit
, phpcs-ci
, pdepend
, phpmd-ci
, phpcpd-ci
, phploc-ci
et phpdox
.
Pour les tâches qui doivent s'exécuter rapidement et ne nécessitent qu'un nombre minimal de contrôles d'assurance qualité, exécutez plutôt les cibles suivantes :
build-quick
Cela exécutera check_mergeconflicts
, phplint
et phpunit
.
Ajoutez des cibles de build supplémentaires à votre fichier build.xml
en fonction de votre projet particulier.
Le build.xml
inclus suppose que tous les outils d'assurance qualité sont installés dans ./vendor/bin
. S'ils sont installés ailleurs, fournissez une propriété toolsdir
à leur emplacement :
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 >
Par défaut, le build.xml
inclus exécute php -l
sur tous les fichiers PHP du projet à l'exception du répertoire vendor/
à la racine de votre projet. Vous pouvez remplacer ce paramètre à l'aide de la propriété phplintignore
:
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 >
Par défaut, le build.xml
inclus suppose qu'il existe un fichier phpunit.xml
dans le même répertoire que lui. Si vous disposez déjà d'un fichier phpunit.xml
situé ailleurs, vous pouvez remplacer la configuration comme suit :
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 >
Vous pouvez personnaliser les fichiers ignorés dans les vérifications phpcs
en spécifiant une propriété phpcsignore
:
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 >
Par défaut, seul l'annuaire vendor
est exclu des contrôles.
Vous pouvez modifier ce que le standard PHP_CodeSniffer utilise en remplaçant la propriété phpcsstandard
:
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 >
Vous pouvez personnaliser les fichiers ignorés dans les vérifications phpmd
en spécifiant une propriété phpmdignore
:
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 >
Par défaut, seul l'annuaire vendor
est exclu des contrôles.
Vous pouvez personnaliser les fichiers ignorés dans les vérifications phpcpd
en spécifiant une propriété phpcpdignore
:
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 >
Par défaut, seul l'annuaire vendor
est exclu des contrôles.
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 >
Si vous ne souhaitez pas que certains outils d'assurance qualité s'exécutent pour un projet, ajoutez une ou plusieurs des propriétés disable
suivantes avant d'inclure le fichier build.xml
de base :
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 >