ec-europa / oe-code-review
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:33 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
更多关于如何导入和覆盖配置文件的信息,请访问此处。
还可以通过加载额外的任务扩展,并在以下参数下添加任务来扩展要运行的任务列表,如下所示
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 机器正在运行。
- 应生成并导出(或写入 ~/.gitconfig)Github 访问令牌,格式为
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 -> Preferences -> File sharing 下共享,以启用将文件写入本地。