zeek / zeek-build-process
为Zeek项目构建流程提供脚手架。
Requires
- php: ^8.0 || ^8.1
- yosymfony/toml: ^1.0
README
功能
此包帮助设置以下工具的项目:
- Composer 包
- PHP CS Fixer(用于自动代码格式化修复)
- PHP Linter(用于语法检查)
- PHP Mess Detector(检测分析源代码中的代码异味和潜在错误)
- PHPStan(静态分析器,检查代码并查找问题)
- Pest(单元/功能测试框架)
- 一个
.node-version
文件,用于设置项目的基本node
版本(对fnm很有用) - GitHub动作工作流,用于在推送/拉取请求时自动扫描
- 一个
Makefile
,以一致和简单的方式运行构建和扫描命令 - 安装到
git
预提交钩子,该钩子将自动运行cs-fixer
、linter
和phpstan
演示
Zeek.Build.Process.-.Demo.mp4
要求
此软件与Laravel和WordPress项目都兼容*。
WordPress项目结构必须遵循Zeek项目结构(mu-plugins/app/
)。
设置
将此包作为dev
依赖项要求
composer require --dev zeek/zeek-build-process
安装
通过运行(假设您的供应商路径是/vendor
)安装:
./vendor/bin/zbp install
此操作在现有项目中安全、不覆盖文件(no-clobber)安装。它以幂等方式执行:如果您运行安装,更改配置文件中的一个,然后再次运行安装,它将不会覆盖您的更改。
重新安装
如果您需要强制重新安装并从头开始,可以运行:
./vendor/bin/zbp reinstall
警告:这将覆盖您所做的任何更改以及您创建的任何基线。
卸载
如果您想完全删除此软件安装的所有工具、文件和包,可以运行:
./vendor/bin/zbp uninstall
Git钩子安装
如果您只需要设置自己的本地git
pre-commit
钩子,只需运行:
./vendor/bin/zbp precommit
这将创建一个.git/hooks/pre-commit
文件,该文件在git实际提交之前立即运行make precommit
命令。
使用方法
安装了一个Makefile
,它定义了(带配置标志/参数)利用工具的命令(简单且可重复)。
您可以通过查看Makefile源代码来真正了解它在做什么。
正常使用
Make命令
有用的别名
运行cs-fixer
和lint
make precommit
运行cs-fixer
、lint
、phpstan
和phpmd
make scan
有用的单独命令
make cs-fixer
make lint
make phpmd
make phpstan
make pest
生成基线
如果您刚刚安装并需要为项目生成基线,以便构建系统只查看新代码
make baseline
如果您想运行特定的工具基线
make phpmd-baseline
make phpstan-baseline
Git Hook
安装后,将在 .git/hooks/pre-commit
中创建一个 pre-commit
钩子。这个钩子在您提交代码之前立即运行。
它会运行 make precommit
别名,如果检测到任何重大问题,将会导致提交失败。
您应该自己运行 make scan
,因为它包含 phpmd
工具,该工具试图为您提供关于良好实践的指导。
您可以通过在提交命令中传递 --no-verify
来绕过 pre-commit
钩子。这应该很少使用,并且仅在必要时使用。
GitHub Action
包含了一个标准的GitHub动作 build.yml
文件,该文件将在每次GitHub推送时运行所有必要的步骤来执行扫描命令。
此构建文件将自动审查您的代码和拉取请求,并提供反馈。您应该尝试修复报告的任何问题,然而这个系统仍在实验阶段,它可能会报告一些不相关的事项。如果您有任何问题,请联系Aaron Holbrook。
自定义配置文件
完全可以调整工具配置以适应您的个人项目。在首次安装时将创建一个 build
文件夹。
每个工具都有自己的目录和配置文件。要调整单个文件,您需要阅读相应工具的文档,并查看哪些效果最好。