nathansbraten / quality-analyzer
代码审查助手
此软件包的官方仓库似乎已不存在,因此已冻结此软件包。
Requires
- php: >=7.0
- ext-zip: *
- kore/data-object: ^1.1
- pdepend/pdepend: @stable
- phploc/phploc: ^2.1|^3.0|^4.0
- phpmd/phpmd: @stable
- roave/security-advisories: dev-master
- sebastian/finder-facade: ^1.2
- sebastian/phpcpd: @stable
- squizlabs/php_codesniffer: @stable
- symfony/console: ^2.7|^3.0|^4.0
Requires (Dev)
- phpunit/phpunit: ^5.6
- dev-master
- dev-greenkeeper-babel-core-6.7.5
- dev-greenkeeper-react-dom-15.0.0
- dev-greenkeeper-react-15.0.0
- dev-greenkeeper-phantomjs-2.1.7
- dev-greenkeeper-eslint-plugin-react-4.3.0
- dev-greenkeeper-jquery-2.2.3
- dev-greenkeeper-grunt-1.0.1
- dev-greenkeeper-grunt-1.0.0
- dev-greenkeeper-eslint-2.7.0
- dev-greenkeeper-grunt-cli-1.2.0
- dev-greenkeeper-eslint-2.6.0
- dev-greenkeeper-babel-eslint-6.0.2
- dev-greenkeeper-babel-eslint-6.0.1
- dev-greenkeeper-react-dom-0.14.8
- dev-greenkeeper-react-0.14.8
- dev-greenkeeper-eslint-2.5.3
- dev-greenkeeper-eslint-2.5.2
- dev-greenkeeper-babel-eslint-6.0.0
- dev-greenkeeper-babel-eslint-5.0.1
- dev-greenkeeper-eslint-2.5.1
- dev-greenkeeper-eslint-2.5.0
- dev-greenkeeper-style-loader-0.13.1
- dev-greenkeeper-jszip-2.6.0
- dev-greenkeeper-babel-core-6.7.4
- dev-greenkeeper-grunt-cli-1.1.0
- dev-greenkeeper-grunt-cli-1.0.1
- dev-greenkeeper-grunt-cli-1.0.0
- dev-greenkeeper-karma-junit-reporter-0.4.1
- dev-greenkeeper-grunt-karma-0.12.2
- dev-greenkeeper-jquery-2.2.2
- dev-greenkeeper-karma-jasmine-0.3.8
- dev-greenkeeper-eslint-plugin-react-4.2.3
- dev-greenkeeper-eslint-plugin-react-4.2.2
- dev-greenkeeper-grunt-contrib-watch-1.0.0
- dev-greenkeeper-sass-loader-3.2.0
- dev-greenkeeper-eslint-2.4.0
- dev-greenkeeper-babel-core-6.7.2
- dev-greenkeeper-karma-junit-reporter-0.4.0
- dev-greenkeeper-react-router-2.0.1
- dev-greenkeeper-babel-core-6.7.0
- dev-greenkeeper-eslint-plugin-react-4.2.1
- dev-greenkeeper-karma-0.13.22
- dev-greenkeeper-eslint-plugin-react-4.2.0
- dev-greenkeeper-eslint-2.3.0
- dev-greenkeeper-babel-core-6.6.5
- dev-greenkeeper-history-2.0.1
- dev-greenkeeper-babel-core-6.6.4
- dev-greenkeeper-babel-core-6.6.0
- dev-greenkeeper-babel-loader-6.2.4
- dev-greenkeeper-eslint-plugin-react-4.1.0
- dev-greenkeeper-webpack-1.12.14
- dev-greenkeeper-jquery-2.2.1
- dev-greenkeeper-eslint-plugin-react-4.0.0
- dev-greenkeeper-eslint-2.2.0
- dev-greenkeeper-d3-3.5.16
- dev-greenkeeper-babel-loader-6.2.3
- dev-greenkeeper-babel-eslint-5.0.0
- dev-greenkeeper-eslint-2.1.0
- dev-greenkeeper-grunt-eslint-18.0.0
- dev-greenkeeper-karma-0.13.21
- dev-greenkeeper-eslint-2.0.0
- dev-greenkeeper-babel-core-6.5.2
- dev-greenkeeper-karma-0.13.20
- dev-greenkeeper-d3-3.5.15
- dev-greenkeeper-grunt-eslint-17.3.2
- dev-greenkeeper-react-router-2.0.0
- dev-greenkeeper-babel-core-6.5.1
- dev-greenkeeper-babel-core-6.5.0
- dev-greenkeeper-eslint-plugin-standard-1.3.2
- dev-greenkeeper-eslint-config-standard-5.1.0
- dev-greenkeeper-eslint-config-standard-5.0.0
- dev-greenkeeper-react-router-v1.0.3
- dev-greenkeeper-history-2.0.0
- dev-greenkeeper-webpack-1.12.13
- dev-greenkeeper-babel-loader-6.2.2
- dev-greenkeeper-babel-eslint-4.1.8
- dev-greenkeeper-babel-eslint-4.1.7
- dev-greenkeeper-karma-jasmine-0.3.7
- dev-greenkeeper-node-sass-v3.4.2
- dev-greenkeeper-react-0.14.7
- dev-greenkeeper-react-dom-0.14.7
- dev-greenkeeper-karma-phantomjs-launcher-1.0.0
- dev-greenkeeper-phantomjs-2.1.3
- dev-greenkeeper-d3-3.5.14
- dev-greenkeeper-phantomjs-2.1.2
- dev-greenkeeper-phantomjs-2.1.1
- dev-greenkeeper-eslint-plugin-react-3.16.1
- dev-greenkeeper-eslint-plugin-react-3.16.0
- dev-greenkeeper-webpack-1.12.12
- dev-greenkeeper-d3-3.5.13
- dev-greenkeeper-babel-core-6.4.5
- dev-greenkeeper-xml2js-0.4.16
- dev-greenkeeper-eslint-plugin-react-3.15.0
- dev-greenkeeper-webpack-1.12.11
- dev-greenkeeper-jquery-2.2.0
- dev-greenkeeper-react-dom-0.14.6
- dev-greenkeeper-react-0.14.6
- dev-greenkeeper-babel-core-6.4.0
- dev-greenkeeper-webpack-1.12.10
- dev-greenkeeper-extract-text-webpack-plugin-1.0.1
- dev-greenkeeper-karma-0.13.19
- dev-greenkeeper-karma-0.13.18
- dev-greenkeeper-eslint-plugin-react-3.14.0
- dev-greenkeeper-karma-phantomjs-launcher-0.2.3
- dev-greenkeeper-babel-loader-6.2.1
- dev-greenkeeper-karma-0.13.17
- dev-greenkeeper-extract-text-webpack-plugin-1.0.0
- dev-greenkeeper-react-dom-0.14.5
- dev-greenkeeper-react-0.14.5
- dev-greenkeeper-react-0.14.4
- dev-greenkeeper-react-dom-0.14.4
- dev-greenkeeper-eslint-plugin-react-3.13.1
- dev-greenkeeper-karma-0.13.16
- dev-greenkeeper-karma-phantomjs-launcher-0.2.2
- dev-greenkeeper-eslint-plugin-react-3.13.0
- dev-greenkeeper-bootstrap-sass-loader-1.0.10
- dev-greenkeeper-react-router-1.0.3
- dev-greenkeeper-babel-core-6.3.26
- dev-greenkeeper-css-loader-0.23.1
- dev-greenkeeper-eslint-plugin-react-3.12.0
- dev-greenkeeper-history-1.17.0
- dev-greenkeeper-babel-core-6.3.21
- dev-greenkeeper-d3-3.5.12
- dev-greenkeeper-d3-3.5.11
- dev-greenkeeper-babel-core-6.3.17
- dev-greenkeeper-history-1.16.0
- dev-greenkeeper-react-router-1.0.2
- dev-greenkeeper-history-1.15.0
- dev-greenkeeper-history-1.14.0
- dev-greenkeeper-babel-core-6.3.15
- dev-greenkeeper-eslint-plugin-react-3.11.3
- dev-greenkeeper-react-router-1.0.1
- dev-greenkeeper-babel-core-6.3.13
- dev-greenkeeper-babel-core-6.3.2
- dev-greenkeeper-jasmine-core-2.4.1
- dev-greenkeeper-jasmine-2.4.1
This package is not auto-updated.
Last update: 2022-03-26 04:39:44 UTC
README
这是一款可视化指标和源代码的工具。我们与客户一起使用这款软件进行代码审查。
运行分析器需要相应的PHP工具,这些工具通过composer安装,并可以使用便捷命令运行。您也可以在您的常规构建过程中运行这些工具。
为了显示指标,使用的是纯JavaScript/CSS堆栈,因此您可以在Jenkins等持续集成工具内构建和提供结果。这听起来可能有些奇怪,但即使对于跨越80万行PHP代码的软件也能很好地工作。
如果您想改进、增强软件或只是修复一些烦人的错误,我们非常欢迎您这样做。不幸的是,涉及的技能堆栈并不简单(PHP、Symfony2、Ant、Babel、D3、Grunt、Jasmine、Karma、SASS、PhantomJs、React、React-Router、Underscore、Webpack)。对于与该项目任何互动都适用行为准则 - 如果您觉得它被违反,请联系Kore。
设置
要使用此软件,涉及的操作步骤非常少。唯一的必要条件是当前版本的PHP。
运行以下命令来安装软件
git clone https://github.com/Qafoo/QualityAnalyzer.git cd QualityAnalyzer composer install
在下一步中,您可以使用类似的方法分析某些软件
bin/analyze analyze src/php/
请参阅“用法”以获取有关命令的更多详细信息。此命令的结果可以在data/文件夹中找到。
最后,您可以启动web服务器以查看结果
bin/analyze serve
点击浏览并享受数据!
用法
您首先分析某个项目或为工具提供现有分析文件的路径,如代码覆盖率报告
bin/analyze analyze /path/to/source
使用默认命令,工具将分析源代码本身。对于PHPMD或PDepend等工具来说,这非常有意义,因为这些工具已经知道每个工具应使用哪些选项。
有一些报告我们无法自行生成,如测试中的代码覆盖率。您可以告诉工具某些文件的路径,以确保它们可用并准备好使用
bin/analyze \
--coverage=/path/to/clover.xml \
--tests=/path/to/junit.xml \
analyze /path/to/source
您还可以为所有其他工具指定已生成的文件。但如果某些报告生成格式错误或某些选项缺失,可视化可能会表现得奇怪。我们尚未(正确)验证这一点。
要查看HTML格式的报告,请运行bin/analyze bundle /path/for/generated/html,然后使用浏览器打开/path/for/generated/html/index.html。
忽略子目录
您可能还希望告诉工具哪些目录要被工具忽略。这特别重要,如果您源目录中(有大型)库,您不希望分析它们。为此,您可以使用--exclude选项
bin/analyze \
--coverage=/path/to/clover.xml \
--tests=/path/to/junit.xml \
--exclude=libraries,vendor \
analyze /path/to/source
分析器完成后,使用bin/analyze serve或类似方法使用浏览器访问index.html并享受结果可视化。
排除分析器
您可能还会故意排除一些分析器在您的代码上运行,例如,如果您不想分析您的Git使用情况。为此,您可以使用--exclude_analyzers选项。
bin/analyze \
--exclude_analyzers=git,gitDetailed \
analyze /path/to/source
要获取所有可用分析器的列表,请运行:
bin/analyze list:analyzers
自定义工具
如果您想自定义工具执行,您可以始终自己运行所有工具,并将现有的结果文件传递给analyze命令。一个自定义Ant构建文件示例可以在这里找到:src/examples/customize.xml或src/examples/parallel.xml。
传递您自定义结果的参数,这些参数将由分析器命令本身跳过运行工具是
--pdepend=PDEPEND Path to PDepend summary XML file --dependencies=DEPENDENCIES Path to PDepend dependencies XML file --phpmd=PHPMD Path to mess detector (PMD / PHPMD) XML file --checkstyle=CHECKSTYLE Path to checkstyle violations (PHP Code Sniffer) XML file --cpd=CPD Path to C&P violations (PHP Copy Paste Detector) XML file --phploc=PHPLOC Path to PHPLoc result XML file
请自由提供通过创建拉取请求使用不同构建环境的示例。
构建和开发软件
质量分析器的构建系统基于Ant。您必须安装ant >= 1.8。为了能够使用它,您应该首先初始化包含构建公用的子模块。
git submodule update --init
为了开发质量分析器,我们严重依赖JavaScript构建栈。为此,您必须安装node和npm。所有其他必需的工具将由构建工具安装。要将项目设置为开发模式,请运行:
echo env=dev > environment.local
只要您不再从environment.local文件中删除此行或将它更改为prod,所有开发工具和库都将安装和使用。这也意味着JavaScript和CSS将通过如ant serve之类的命令进行编译。
运行测试
您可以通过执行ant来运行测试。
它将通过Karma & Jasmine运行JavaScript栈的部分测试,并使用PHPUnit测试PHP栈(一旦我们有)。
构建CSS和JavaScript
项目使用ECMAScript 6,并使用Babel进行转译。因此,当在客户端工作时,我们需要更新bundle.js。这是在项目准备时执行的,也可以通过以下命令持续执行:
ant watch
这还将编译项目中的SASS文件和Bootstrap文件到单个CSS文件中。
尝试项目
如果您想尝试项目,您可以使用任何基本Web服务器托管根目录。Web服务器应将所有未知资源的请求重写为index.html文件,该文件使用JavaScript进行路由。
为了您的方便,我们包含了一个使用PHP内部Web服务器的有效服务器设置。您可以使用以下命令启动它:
ant serve
生成捆绑文件
以下任务确保捆绑文件已生成、压缩和提交。
ant deploy
使用此命令更新分发文件。
它将首先运行package任务(当然,在运行所有测试之后)。如果assets/文件夹中有更改,这些更改将被提交,然后当前的开发状态将被推送。