lovullo / phpqaconfig
LoVullo Associates 的 PHP QA 和开发工具配置。
Requires
- friendsofphp/php-cs-fixer: @stable
- phpmd/phpmd: @stable
- phpunit/dbunit: @stable
- phpunit/phpunit: >=4.8.28
- sebastian/phpcpd: @stable
- squizlabs/php_codesniffer: @stable
- dev-master
- 1.1.11
- 1.1.10
- 1.1.9
- 1.1.8
- 1.1.7
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.46
- 1.0.45
- 1.0.44
- 1.0.43
- 1.0.42
- 1.0.41
- 1.0.40
- 1.0.39
- 1.0.38
- 1.0.37
- 1.0.36
- 1.0.35
- 1.0.33
- 1.0.32
- 1.0.31
- 1.0.30
- 1.0.29
- 1.0.28
- 1.0.27
- 1.0.26
- 1.0.25
- 1.0.24
- 1.0.23
- 1.0.22
- 1.0.21
- 1.0.20
- 1.0.19
- 1.0.18
- 1.0.17
- 1.0.16
- 1.0.15
- 1.0.14
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
This package is auto-updated.
Last update: 2021-05-03 12:46:13 UTC
README
针对 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 目标
- composer
- phpunit
- phpcs
- phpmd
- phpcpd
- phploc
例如
$ ant phpcs phpmd phpcpd
持续集成
在配置持续集成(例如 Jenkins)时,必须先下载并安装此存储库,然后才能运行 ant
任务。在 Jenkins 中添加一个带有以下命令的“执行 Shell”构建步骤
$ composer install -o
然后,添加一个带有以下目标的“调用 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
文件中添加适当的附加构建目标。
自定义
QA 工具位置
包含的 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>
PHP Lint 配置
默认情况下,包含的 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>
PHPUnit 配置
默认情况下,包含的 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>
PHP_CodeSniffer 配置
您可以通过指定 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>
PHPMD 配置
您可以通过指定 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
目录被排除在检查之外。
PHPCPD 配置
您可以通过指定 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
目录被排除在检查之外。
phpDox 配置
<?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 检查
如果您不希望某些 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>