richcongress / static-analysis
一个用于快速设置 RichCongress 静态分析工具的库
Requires
- php: ^8.1
- friendsofphp/php-cs-fixer: ^2.0 || ^3.0
- jschaedl/composer-git-hooks: ^4.0
- nunomaduro/phpinsights: ^1.0 || ^2.0
- phpmetrics/phpmetrics: ^2.7
- phpstan/phpstan: ^1.10.0
This package is auto-updated.
Last update: 2024-09-03 10:14:23 UTC
README
静态分析检查代码是否符合配置。在这个仓库中,你可以找到一个默认配置和一个执行静态分析的脚本。
安装
使用 composer 执行以下命令:composer require richcongress/static-analysis --dev
配置
文件
在项目文件夹中创建指向配置文件的符号链接
ln -sr ./vendor/richcongress/static-analysis/configs/phpstan.neon ./ ln -sr ./vendor/richcongress/static-analysis/configs/phpinsights.php ./ ln -sr ./vendor/richcongress/static-analysis/configs/php-cs-fixer.dist.php ./.php-cs-fixer.dist.php
如果你在捆绑中使用此方法,你还需要在 composer.json
中排除 phpinsights.php
以从自动加载中排除
{
"autoload": {
"exclude-from-classmap": ["phpinsights.php"]
}
}
如果你想复制文件而不是创建符号链接,只需将 ln
改为 cp
cp ./vendor/richcongress/static-analysis/configs/phpstan.neon ./ cp ./vendor/richcongress/static-analysis/configs/phpinsights.php ./ cp ./vendor/richcongress/static-analysis/configs/php-cs-fixer.dist.php ./.php-cs-fixer.dist.php
Git 钩子
要轻松添加在 pre-push
上执行静态分析的钩子,请将以下代码添加到您的 composer.json
文件中
{
"scripts": {
"post-install-cmd": [
"[ $COMPOSER_DEV_MODE -eq 0 ] || cghooks add --ignore-lock"
],
"post-update-cmd": [
"[ $COMPOSER_DEV_MODE -eq 0 ] || cghooks update"
]
},
"extra": {
"hooks": {
"pre-commit": [
"docker-compose exec -T application ./vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix -n"
],
"pre-push": [
"docker-compose exec -T application ./vendor/friendsofphp/php-cs-fixer/php-cs-fixer fix --dry-run -n",
"docker-compose exec -T application ./vendor/richcongress/static-analysis/bin/static_analysis"
]
}
}
}
请注意,如果你使用 docker 容器并且在外部进行提交,它将在容器外部执行。
PHP CS Fixer 文件监视器
你可以设置一个文件监视器,在文件保存时自动运行 php-cs-fixer。对于 PhpStorm,可以使用 configs/watcherTasks.xml
配置作为示例,或者如果你没有其他监视器在你的配置中,可以直接将其复制到你的 .idea/
文件夹
cp ./vendor/richcongress/static-analysis/configs/watcherTasks.xml .idea/
版本控制
static-analysis 遵循 语义版本控制。简而言之,方案是 MAJOR.MINOR.PATCH,其中
- MAJOR 在出现破坏性更改时增加,
- MINOR 在向后兼容的方式中添加新功能时增加,
- PATCH 在向后兼容的方式中修复错误时增加。
低于 1.0.0 的版本被认为是实验性的,并且破坏性更改可能会随时发生。
贡献
欢迎贡献!有很多方式可以贡献,我们非常感谢所有贡献者。以下是一些主要的贡献方式
- 错误报告:虽然我们努力制作高质量的软件,但错误仍然可能发生,我们无法修复我们不知道的问题。所以请即使你不确定或者只是想提问,也请报告问题。如果问题可能表明文档仍需要改进!
- 功能请求:你的用例没有被当前 api 覆盖?想要建议更改或添加某些内容?我们很高兴阅读并开始讨论以尝试找到最佳可能的解决方案。
- 拉取请求:想要贡献代码或文档?我们非常愿意!如果你需要帮助开始,GitHub 有关于 拉取请求 的文档。我们使用 “fork and pull” 模型,其中贡献者将更改推送到他们的个人分支,然后创建对主存储库的拉取请求。请确保你的拉取请求针对
master
分支。
作为提醒,所有贡献者都应遵循我们的 行为准则。
许可证
static-analysis 在 MIT 许可证的条款下分发。
详情请见 许可协议。