Konfigurasi untuk QA dan alat pengembangan khusus untuk standar pengkodean di LoVullo Associates. Paket ini, dikombinasikan dengan lovullo/phpqatools
dimaksudkan sebagai basis untuk proyek PHP baru.
Cukup minta di composer.json
proyek Anda
"require-dev" : {
"lovullo/phpqaconfig" : " @stable "
}
Atau
$ composer require --dev lovullo/phpqaconfig
Buat file build.xml
di root proyek Anda dengan konten berikut:
xml version = " 1.0 " encoding = " utf-8 " ?>
< project name = " project-name " >
< import file = " ${basedir}/vendor/lovullo/phpqaconfig/build.xml " />
project >
Buat file phpunit.xml
di root proyek Anda dengan konten berikut:
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 >
Lihat bagian "Menyesuaikan" di bawah jika Anda sudah memiliki konfigurasi PHPUnit di tempat lain.
Saat mengembangkan, gunakan target semut berikut:
Misalnya:
$ ant phpcs phpmd phpcpd
Saat mengonfigurasi Integrasi Berkelanjutan (mis. Jenkins), composer
harus mengunduh dan menginstal repo ini sebelum Anda dapat menjalankan tugas ant
. Tambahkan langkah pembangunan "Jalankan Shell" ke Jenkins dengan perintah berikut:
$ composer install -o
Selanjutnya tambahkan langkah build "Invoke Ant" dengan target sebagai berikut:
build-qa
Ini akan menjalankan check_mergeconflicts
, phplint
, phpunit
, phpcs-ci
, pdepend
, phpmd-ci
, phpcpd-ci
, phploc-ci
, dan phpdox
.
Untuk pekerjaan yang perlu dijalankan dengan cepat dan hanya memerlukan sedikit pemeriksaan QA, jalankan target berikut:
build-quick
Ini akan menjalankan check_mergeconflicts
, phplint
, dan phpunit
.
Tambahkan target pembangunan tambahan ke file build.xml
Anda yang sesuai untuk proyek khusus Anda.
build.xml
yang disertakan mengasumsikan bahwa semua alat QA diinstal ke ./vendor/bin
. Jika dipasang di tempat lain, berikan properti toolsdir
ke lokasinya:
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 >
Secara default, build.xml
yang disertakan menjalankan php -l
pada semua file PHP dalam proyek kecuali direktori vendor/
di root proyek Anda. Anda dapat mengganti pengaturan ini menggunakan properti 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 >
Secara default, build.xml
yang disertakan mengasumsikan bahwa ada file phpunit.xml
di direktori yang sama dengan file itu sendiri. Jika Anda sudah memiliki file phpunit.xml
yang terletak di tempat lain, Anda dapat mengganti konfigurasinya sebagai berikut:
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 >
Anda dapat menyesuaikan file yang diabaikan dalam pemeriksaan phpcs
dengan menentukan properti 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 >
Secara default, hanya direktori vendor
yang dikecualikan dari pemeriksaan.
Anda dapat mengubah apa yang digunakan standar PHP_CodeSniffer dengan mengganti properti 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 >
Anda dapat menyesuaikan file yang diabaikan dalam pemeriksaan phpmd
dengan menentukan properti 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 >
Secara default, hanya direktori vendor
yang dikecualikan dari pemeriksaan.
Anda dapat menyesuaikan file yang diabaikan dalam pemeriksaan phpcpd
dengan menentukan properti 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 >
Secara default, hanya direktori vendor
yang dikecualikan dari pemeriksaan.
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 >
Jika Anda tidak ingin alat QA tertentu dijalankan untuk suatu proyek, tambahkan satu atau beberapa properti disable
berikut sebelum menyertakan file build.xml
dasar:
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 >