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 ターゲットを使用します。
例えば:
$ ant phpcs phpmd phpcpd
継続的インテグレーション (つまり、Jenkins) を構成する場合、 ant
タスクを実行する前に、 composer
このリポジトリをダウンロードしてインストールする必要があります。次のコマンドを使用して、「シェルの実行」ビルド ステップを Jenkins に追加します。
$ 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
プロパティを 1 つ以上追加します。
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 >