Configuración para herramientas de desarrollo y control de calidad específicas de los estándares de codificación en LoVullo Associates. Este paquete, combinado con lovullo/phpqatools
está destinado a ser una base para nuevos proyectos PHP.
Simplemente solicítelo en composer.json
de su proyecto.
"require-dev" : {
"lovullo/phpqaconfig" : " @stable "
}
O
$ composer require --dev lovullo/phpqaconfig
Cree un archivo build.xml
en la raíz de su proyecto con el siguiente contenido:
xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
project >
Cree un archivo phpunit.xml
en la raíz de su proyecto con el siguiente contenido:
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 >
Consulte la sección "Personalizar" a continuación si tiene una configuración PHPUnit existente en otro lugar.
Al desarrollar, utilice los siguientes objetivos para hormigas:
Por ejemplo:
$ ant phpcs phpmd phpcpd
Al configurar la integración continua (es decir, Jenkins), composer
debe descargar e instalar este repositorio antes de poder ejecutar tareas ant
. Agregue un paso de compilación "Ejecutar Shell" a Jenkins con el siguiente comando:
$ composer install -o
A continuación, agregue un paso de compilación "Invocar hormiga" con el siguiente objetivo:
build-qa
Esto ejecutará check_mergeconflicts
, phplint
, phpunit
, phpcs-ci
, pdepend
, phpmd-ci
, phpcpd-ci
, phploc-ci
y phpdox
.
Para trabajos que deben ejecutarse rápidamente y solo necesitan una cantidad mínima de comprobaciones de control de calidad, ejecute los siguientes objetivos:
build-quick
Esto ejecutará check_mergeconflicts
, phplint
y phpunit
.
Agregue objetivos de compilación adicionales a su archivo build.xml
según corresponda para su proyecto en particular.
El build.xml
incluido supone que todas las herramientas de control de calidad están instaladas en ./vendor/bin
. Si están instalados en otro lugar, proporcione una propiedad toolsdir
a su ubicación:
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 >
De forma predeterminada, el build.xml
incluido ejecuta php -l
en todos los archivos PHP del proyecto excepto en el directorio vendor/
en la raíz de su proyecto. Puede anular esta configuración utilizando la propiedad 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 >
De forma predeterminada, el build.xml
incluido supone que hay un archivo phpunit.xml
en el mismo directorio que él. Si ya tiene un archivo phpunit.xml
ubicado en otro lugar, puede anular la configuración de la siguiente manera:
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 >
Puede personalizar los archivos que se ignoran en las comprobaciones phpcs
especificando una propiedad 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 >
De forma predeterminada, sólo el directorio vendor
está excluido de las comprobaciones.
Puede cambiar lo que utiliza el estándar PHP_CodeSniffer anulando la propiedad 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 >
Puede personalizar los archivos que se ignoran en las comprobaciones phpmd
especificando una propiedad 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 >
De forma predeterminada, sólo el directorio vendor
está excluido de las comprobaciones.
Puede personalizar los archivos que se ignoran en las comprobaciones phpcpd
especificando una propiedad 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 >
De forma predeterminada, sólo el directorio vendor
está excluido de las comprobaciones.
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 no desea que se ejecuten determinadas herramientas de control de calidad para un proyecto, agregue una o más de las siguientes propiedades disable
antes de incluir el archivo build.xml
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 >