تكوين أدوات ضمان الجودة والتطوير الخاصة بمعايير الترميز في LoVullo Associates. هذه الحزمة، مع 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
. أضف خطوة إنشاء "Execute Shell" إلى Jenkins باستخدام الأمر التالي:
$ composer install -o
بعد ذلك، قم بإضافة خطوة إنشاء "استدعاء النملة" مع الهدف التالي:
build-qa
سيؤدي هذا إلى تشغيل check_mergeconflicts
و phplint
و phpunit
و phpcs-ci
و pdepend
و phpmd-ci
و phpcpd-ci
و phploc-ci
و phpdox
.
بالنسبة للمهام التي تحتاج إلى التشغيل بسرعة وتحتاج فقط إلى الحد الأدنى من عدد فحوصات ضمان الجودة، قم بتشغيل الأهداف التالية بدلاً من ذلك:
build-quick
سيؤدي هذا إلى تشغيل check_mergeconflicts
و phplint
و phpunit
.
أضف أهداف بناء إضافية إلى ملف build.xml
الخاص بك بما يتناسب مع مشروعك المحدد.
يفترض build.xml
المضمن أن جميع أدوات ضمان الجودة مثبتة في ./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
المضمن بتشغيل php -l
على جميع ملفات PHP في المشروع باستثناء دليل vendor/
في جذر مشروعك. يمكنك تجاوز هذا الإعداد باستخدام الخاصية 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 >
يمكنك تخصيص الملفات التي تم تجاهلها في عمليات فحص phpcs
عن طريق تحديد خاصية 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 >
افتراضيًا، يتم استبعاد دليل vendor
فقط من عمليات التحقق.
يمكنك تغيير ما يستخدمه معيار PHP_CodeSniffer عن طريق تجاوز خاصية 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 >
يمكنك تخصيص الملفات التي تم تجاهلها في اختبارات phpmd
عن طريق تحديد خاصية 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 >
افتراضيًا، يتم استبعاد دليل vendor
فقط من عمليات التحقق.
يمكنك تخصيص الملفات التي تم تجاهلها في عمليات فحص phpcpd
عن طريق تحديد خاصية 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 >
افتراضيًا، يتم استبعاد دليل 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 >
إذا كنت لا تريد تشغيل بعض أدوات ضمان الجودة لمشروع ما، أضف واحدة أو أكثر من خصائص disable
التالية قبل تضمين ملف build.xml
الأساسي:
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 >