openeuropa / code-review
OpenEuropa 代码审查组件。
Requires
- php: >=8.0
- amphp/parallel: ^1.4.1
- drupal/coder: ^8.3.16
- phpmd/phpmd: ^2.12
- phpro/grumphp: ^1.1
- squizlabs/php_codesniffer: ^3.6
Requires (Dev)
- phpunit/phpunit: ^9.5.5
- 3.x-dev
- 2.x-dev
- 2.0.0-alpha6
- 2.0.0-alpha5
- 2.0.0-alpha4
- 2.0.0-alpha3
- 2.0.0-alpha2
- 2.0.0-alpha1
- 1.x-dev
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 1.0.0-beta4
- 1.0.0-beta3
- 1.0.0-beta2
- 1.0.0-beta1
- 1.0.0-alpha5
- 1.0.0-alpha4
- 1.0.0-alpha3
- 1.0.0-alpha2
- 1.0.0-alpha1
- 0.x-dev
- 0.3.0
- 0.2.0
- 0.1.1
- 0.1.0
- 0.0.2
- 0.0.1
- dev-OEL-3328
- dev-dronetest
- dev-update-2.x
- dev-EWPP-1778
- dev-EWPP-1406
- dev-EWPP-1387
- dev-EWPP-929
- dev-master
- dev-OPENEUROPA-2258-test-php72
- dev-73-add-composer-task
This package is auto-updated.
Last update: 2024-09-06 12:42:28 UTC
README
安装
通过 Composer 安装代码审查组件
composer require --dev openeuropa/code-review
在项目根目录创建以下 grumphp.yml.dist
imports: - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml }
对于 Drupal 项目,应导入 drupal-conventions.yml
。
使用 Docker Compose
或者,您可以使用提供的配置通过 Docker 和 Docker Compose 建立开发环境。
Docker 提供了必要的服务和技术,如 Web 服务器和数据库服务器,以启动站点,无论您的本地主机配置如何。
要求
配置
默认情况下,Docker Compose 读取两个文件,一个是 docker-compose.yml
,另一个是可选的 docker-compose.override.yml
文件。按照惯例,docker-compose.yml
包含您的基配置,并且默认提供。重写文件,正如其名称所暗示的,可以包含现有服务或完全新的服务的配置重写。如果服务在两个文件中都定义,Docker Compose 会合并配置。
有关 Docker Compose 扩展机制的更多信息,请参阅 官方 Docker Compose 文档。
用法
要开始,运行
docker-compose up
建议不要将 docker-compose
作为守护进程运行,这样您可以在完成工作后快速关闭它(CTRL+C
)。但是,如果您想以守护进程运行,必须添加标志 -d
docker-compose up -d
然后
docker-compose exec web composer install
运行测试
要运行 grumphp 检查
docker-compose exec web ./vendor/bin/grumphp run
要运行 phpunit 测试
docker-compose exec web ./vendor/bin/phpunit
步骤调试
要从命令行启用步骤调试,将 XDEBUG_SESSION
环境变量传递给容器以任何值
docker-compose exec -e XDEBUG_SESSION=1 web <your command>
请注意,从 XDebug 3 开始,如果设置了变量但您的客户端没有监听调试连接,将在控制台输出连接错误消息。错误消息将导致 PHPUnit 测试的假阴性。
要从浏览器中开始步骤调试,请使用浏览器扩展或书签设置正确的 cookie,例如在 https://www.jetbrains.com/phpstorm/marklets/ 生成的那些。
自定义
此组件提供了一系列现成的约定,所有项目都必须遵循。默认约定的列表可以在 CONVENTIONS.md 中找到。
由于 GrumPHP 使用 Symfony 依赖注入组件,因此您可以在项目的 grumphp.yml.dist
文件中重写特定参数,如下所示
imports: - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml } parameters: tasks.git_commit_message.matchers: ['/^JIRA-\d+: [A-Z].+\./']
以下列表中的任务参数可以在每个项目的基础上重写
tasks.phpcs.standard
tasks.phpcs.ignore_patterns
tasks.phpcs.triggered_by
tasks.phpcs.whitelist_patterns
tasks.phpcs.warning_severity
tasks.phpmd.exclude
tasks.phpmd.ruleset
tasks.phpmd.triggered_by
tasks.git_commit_message.matchers
关于如何导入和覆盖配置文件的更多信息,请点击这里。
还可以通过加载额外的任务扩展并在extra_tasks:
参数下添加任务来扩展要运行的任务列表,如下所示
imports: - { resource: vendor/openeuropa/code-review/dist/library-conventions.yml } parameters: extra_tasks: phpparser: ~ extensions: - OpenEuropa\CodeReview\ExtraTasksExtension
GrumPHP已经有一系列可以直接使用的任务,您可以在GrumPHP任务页面找到完整列表。
您也可以根据自己的需求创建自定义任务,详情请参考GrumPHP扩展页面。
用法
GrumPHP任务会在每次提交时运行,如果您想在未提交的情况下运行它们,请使用以下命令
./vendor/bin/grumphp run
如果您想模拟创建新提交时将运行的任务
./vendor/bin/grumphp git:pre-commit
有关更多信息,请查看GrumPHP文档。
变更日志
变更日志是通过本地Docker安装生成的,该安装包含了muccg/docker-github-changelog-generator
该工具读取Github API中所需存储库的信息,并将CHANGELOG.md写入存储库的根目录。
先决条件
- 本地Docker机器正在运行。
- 应该生成一个Github访问令牌并导出(或写入~/.gitconfig),格式为
CHANGELOG_GITHUB_TOKEN=<YOUR TOKEN HERE>
在标记新版本之前,请导出以下内容
export CHANGELOG_GITHUB_TOKEN=<YOUR TOKEN HERE> export CHANGELOG_FUTURE_RELEASE=0.1.0
然后可以通过运行以下命令生成变更日志
composer run-script changelog
故障排除
GrumPHP在新提交上未触发
从Git 2.9+(2016年6月)开始,您有一个新的选项用于集中管理钩子:core.hooksPath
。如果GrumPHP在新提交上没有触发,请通过运行以下命令检查全局选项core.hooksPath
:
git config --global --list
要取消该选项,请运行
git config --global --unset core.hooksPath
在Mac上生成变更日志
- 使用Docker应用可以获得最佳结果
- 本地仓库文件夹应在Docker中共享,在Docker -> Preferences -> File sharing下启用,以允许在本地写入文件。