taptima / phalyfusion
用于组合多个PHP静态代码分析器输出的实用工具。
Requires
- php: ^7.1
- ext-json: *
- composer/composer: ^1.10|^2.0
- nette/neon: ^3.0
- symfony/console: ^4.4|^5.0
- symfony/process: ^4.4|^5.0
Requires (Dev)
- ext-ast: *
- phan/phan: ^2.6
- phpmd/phpmd: ^2.8
- phpstan/phpstan: ^0.12.2
- phpunit/phpunit: ^7.0
- taptima/php-cs-fixer: ^1.0
- vimeo/psalm: ^4.4
This package is auto-updated.
Last update: 2024-09-21 10:02:13 UTC
README
Phalyfusion 是一个工具,方便有效地使用多个PHP静态代码分析器和QA工具。它运行分析器,组合其输出,并以多种格式生成单个输出
- 漂亮的PHPStan-like表格控制台输出,按文件分组错误。
- Checkstyle
- Json
当前支持的分析器和工具
- PHPStan
- Phan
- Psalm
- PHPMD
- PHP-CS-Fixer. 使用
--dry-run选项运行PHP-CS-Fixer。
目录
工作原理
例如,项目中需要phpstan、phan和phpmd。然后分析器输出看起来像这样(例如phan)
Phalyfusion 结合所有分析器和QA工具的输出,按文件分组,并按行号排序。生成的输出如下
安装
composer require --dev taptima/phalyfusion dev-master
Composer 将在它的 bin-dir 中安装 Phalyfusion 的可执行文件,默认为 vendor/bin。
分析器应该单独安装。
使用
安装 Phalyfusion 后,您需要在项目根目录中创建 phalyfusion.neon 配置文件。
配置示例
plugins: usePlugins: - phan - phpstan - psalm - phpmd - php-cs-fixer runCommands: phan: bin/phan -k .phan/config.php phpstan: bin/phpstan analyse -c phpstan.neon --level 7 psalm: bin/psalm -c psalm.xml phpmd: bin/phpmd src text cleancode php-cs-fixer: "bin/php-cs-fixer fix --config=.php_cs"
在 usePlugins 中提供您要使用的分析器(插件)的名称。选择: phan、phpstan、psalm、phpmd 或 php-cs-fixer。提供运行指定分析器的命令行。路径相对于当前工作目录解析(您运行 Phalyfusion 的目录)
- 请注意,每个分析器都应该单独安装和配置。
- 所有受支持的单个分析器参数和选项都可以在相应的命令行(runCommands)中使用
- 分析器的输出格式被覆盖。要选择Phalyfusion输出格式,请在运行时使用--format选项。
- 如果将文件路径参数传递给Phalyfusion,则不保证覆盖分析器的文件路径参数。
- 不要在runCommands中声明路径/文件选项/参数,使用Phalyfusion的路径参数或将其配置在配置中。
使用
配置工具和所有使用的分析器后,运行Phalyfusion。
$ php phalyfusion analyse [options] [--] [<files>...]
analyse 是默认命令,用于运行所有连接的插件,因此指定它是可选的。最简单的运行命令如下
$ php phalyfusion $ php phalyfusion analyse
输入 $ php phalyfusion analyse --help 以显示所有可用选项和参数。
参数
files 参数是包含要分析源代码的文件路径。使用空格分隔多个,不要传递目录。默认情况下,将使用phalyfusion.neon中的runCommands中声明的命令行文件路径。
选项
-c、--config 选项是neon配置文件的路径。默认情况下使用项目根目录中的 phalyfusion.neon。
-f、--format 选项用于输出格式。支持的格式是 table(默认),json、checkstyle。
-p、--no-progress 选项用于禁用进度条。
贡献
请参阅 CONTRIBUTING 文件。

