LoVullo Associates의 코딩 표준과 관련된 QA 및 개발 도구를 위한 구성입니다. lovullo/phpqatools
와 결합된 이 패키지는 새로운 PHP 프로젝트의 기반이 될 것입니다.
프로젝트의 composer.json
에 간단히 요구하세요.
"require-dev" : {
"lovullo/phpqaconfig" : " @stable "
}
또는
$ composer require --dev lovullo/phpqaconfig
다음 내용으로 프로젝트 루트에 build.xml
파일을 만듭니다.
xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
project >
다음 내용으로 프로젝트 루트에 phpunit.xml
파일을 만듭니다.
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 >
다른 곳에 기존 PHPUnit 구성이 있는 경우 아래 "사용자 정의" 섹션을 참조하세요.
개발할 때 다음 개미 대상을 사용하십시오.
예를 들어:
$ ant phpcs phpmd phpcpd
지속적인 통합(예: Jenkins)을 구성할 때 composer
ant
작업을 실행하기 전에 이 저장소를 다운로드하고 설치해야 합니다. 다음 명령을 사용하여 Jenkins에 "Execute Shell" 빌드 단계를 추가합니다.
$ composer install -o
다음으로, 다음 대상을 사용하여 "Invoke Ant" 빌드 단계를 추가합니다.
build-qa
그러면 check_mergeconflicts
, phplint
, phpunit
, phpcs-ci
, pdepend
, phpmd-ci
, phpcpd-ci
, phploc-ci
및 phpdox
실행됩니다.
빠르게 실행해야 하고 최소한의 QA 검사만 필요한 작업의 경우 대신 다음 대상을 실행하세요.
build-quick
그러면 check_mergeconflicts
, phplint
및 phpunit
실행됩니다.
특정 프로젝트에 맞게 build.xml
파일에 추가 빌드 대상을 추가하세요.
포함된 build.xml
모든 QA 도구가 ./vendor/bin
에 설치되어 있다고 가정합니다. 다른 곳에 설치된 경우 해당 위치에 toolsdir
속성을 제공하십시오.
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 >
기본적으로 포함된 build.xml
은 프로젝트 루트의 vendor/
디렉터리를 제외하고 프로젝트의 모든 PHP 파일에 대해 php -l
실행합니다. 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 >
기본적으로 포함된 build.xml
자신과 동일한 디렉터리에 phpunit.xml
파일이 있다고 가정합니다. 이미 다른 곳에 phpunit.xml
파일이 있는 경우 다음과 같이 구성을 재정의할 수 있습니다.
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 >
phpcsignore
속성을 지정하여 phpcs
검사에서 무시되는 파일을 사용자 정의할 수 있습니다.
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 >
기본적으로 vendor
디렉터리만 검사에서 제외됩니다.
phpcsstandard
속성을 재정의하여 PHP_CodeSniffer 표준이 사용하는 것을 변경할 수 있습니다:
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 >
phpmdignore
속성을 지정하여 phpmd
검사에서 무시되는 파일을 사용자 정의할 수 있습니다:
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 >
기본적으로 vendor
디렉터리만 검사에서 제외됩니다.
phpcpdignore
속성을 지정하여 phpcpd
검사에서 무시되는 파일을 사용자 정의할 수 있습니다:
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 >
기본적으로 vendor
디렉터리만 검사에서 제외됩니다.
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 >
프로젝트에 대해 특정 QA 도구를 실행하지 않으려면 기본 build.xml
파일을 포함하기 전에 다음 disable
속성 중 하나 이상을 추가하세요.
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 >