hkirsman / code-quality
Code Quality checker wrapper for GrumPHP
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 5
Type:phpcodesniffer-standard
Requires
- dealerdirect/phpcodesniffer-composer-installer: *
- drupal/coder: ^8
- hkirsman/ecs-drupal: 2.0.0
- mglaman/phpstan-drupal: ^0.12.2
- pheromone/phpcs-security-audit: ^2.0
- phpcompatibility/php-compatibility: ^9.3
- phpro/grumphp: ^1
- phpstan/phpstan-deprecation-rules: ^0.12.2
- squizlabs/php_codesniffer: ^3.4
- symfony/polyfill-iconv: ^1
- symplify/coding-standard: ^9.3
Requires (Dev)
- phpunit/phpunit: ^8.3
- dev-master
- 2.1.0
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0.0
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.2.0
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.4
- 0.1.3
- 0.1.2
- 0.1.1
- 0.1.0
- dev-feature/#59-support-drupal-8-and-composer-2
- dev-feature/59-support-drupal-8-and-composer-2
- dev-feature/grumphp-upgrade
- dev-feature/#41-legacy-support
This package is auto-updated.
Last update: 2024-10-26 01:49:55 UTC
README
This composer package will provide some basic code quality checks before committing code by using https://github.com/phpro/grumphp.
It checks only modified files or new files on git commit, but check on all configured
paths can be executed running vendor/bin/grumphp run
This tool only extends GrumPHP. Please read its documentation on how to configure tool itself.
Checks performed
This repository currently has following checks:
- Shell script exec bits - check_file_permissions
- PHP Drupal CS and PHP Code security - phpcs
- PHP 7.3 Compatibility - php_compatibility
- PHP syntax - php_check_syntax
- Cognitive complexity and other ecs sniffs - ecs
- Yaml syntax - yaml_lint
- Json syntax - json_lint
- Deprecation testing - php_stan
Pre-requisites
- Composer
- PHP >= 7.1
Installation
This needs to be done only once either while creating a project or enabling code checks in existing project.
composer require wunderio/code-quality --dev
cp vendor/wunderio/code-quality/config/grumphp.yml ./grumphp.yml
cp vendor/wunderio/code-quality/config/phpstan.neon ./phpstan.neon
The commit hook for GrumPHP is automatically installed on composer require.
Customization
Configuration
Details of the configuration are broken down into the following sections.
- Parameters – Configuration settings for GrumPHP itself.
- Tasks – External tasks performing code validation and their respective configurations.
- TestSuites
- Extensions
- Events
- Conventions checker
Task parameters
If you need to customize the rules for PHP CodeSniffer then drop in phpcs.xml in the same folder as composer.json and configure grumphp.yml:
parameters: tasks: phpcs: standard: - phpcs.xml
Same applies to any task that uses other configuration file (easy-coding-standards).
Each code quality tool allows you to define at least 3 things:
run_on
- Multiple paths that will be checked and files staged must be from same pathignore_patterns
- path parts that will exclude files from checkextensions
- file extensions of files that should be checked
Please see individual task documentation for more information on what are other configurable options.
Commands
Since GrumPHP is just a CLI tool, these commands can be triggered:
Usage
The pre-commit hook will be automatically run upon executing git commit
.
The code scanning can be avoided by git commit --no-verify
or git commit -n
.
You can run the checks manually with: ./vendor/bin/grumphp run
Usage in Continuous Integration
You can easily use the code quality checkers on your CI (CircleCi/Jenkins/GitLab CI) by adding this line:
./vendor/bin/grumphp run --no-ansi --no-interaction