mds-code-check
is a CLI tool for running PHP 8.x code checks for Symfony based applications with configurable rule sets with:
composer require --dev mds-agenturgruppe/php-code-checker:^5.0
After installation run this command:
vendor/bin/mds-code-check
This will execute code checks with the default ruleset, which is intended for code checks of Symfony projects.
Rule sets define which checks and the arguments are used for a project when running the mds-code-check
script. By
default rulesets/default/ruleset.conf
is used.
Ruleset files define variables to configure the executed checks.
- Enable (
1
) or disable (0
) checks:PHPSTAN
,PHPCS
,PHPMD
- Arguments for each check:
PHPSTAN_ARGS
,PHPCS_ARGS
,PHPMD_ARGS
mds-code-check
can be adapted to project-specific needs.
The used ruleset is configured by placing .mds-code-checker.conf
into the project root folder defining the RULESET
variable with the ruleset file to use.
RULESET="./vendor/mds-agenturgruppe/php-code-checker/rulesets/default/ruleset.conf";
In the project configuration file .mds-code-checker.conf
the used ruleset can be adjusted as needed by overwriting the defining variables.
Example for disabling checks and changing arguments:
RULESET="./vendor/mds-agenturgruppe/php-code-checker/rulesets/default/ruleset.conf";
PHPSTAN_ARGS="--level=9 analyse bundles"
PHPCS_ARGS="--extensions=php --standard=./src/project-phpcs-ruleset.xml ./src -s"
PHPMD_ARGS="./src text --standard=./src/project-phpmp-ruleset.xml --exclude=\"*/Resources/views/*\""
In the development or analysis process, it is sometimes useful to only execute some tests. This can be achieved by passing check names as arguments to mds-code-check
.
Only execute phpstan:
vendor/bin/mds-code-check phpstan
Only execute PHP_CodeSniffer and phpmd:
vendor/bin/mds-code-check phpcs phpmd
For usage in CI pipelines and failing code check stages mds-code-check
returns exit code 1
if at least one of the executed check script returns exit code 1
. If all checks are
successful exit code 0
is returned.
To find usage of deprecated sources add to the project phpstan.neon
file:
vendor/phpstan/phpstan-deprecation-rules/rules.neon
To run rector with our default config execute
vendor/bin/mds-rector
This will use config rulesets/default/rector-default.php
and the dry-run
option.
Tip: For a better overview of the dry-run output forward this to e.g. > rector-run.diff
file and open that in sublime.
vendor/bin/mds-rector --dry-run > rector-run.diff
Use the option --force-run
to apply all the changes.
vendor/bin/mds-rector --force-run
To use a custom config for your project, you can copy rulesets/default/rector-default.php
to PROJECT_DIR/rector.php
and adjust that to your needs.
Then use the standard rector cli command.
vendor/bin/rector process --dry-run
For more information check: https://getrector.com/documentation
- If you use PhpStorm and want a one-time change, use the Replace function with regex activated so that you replace
@SuppressWarnings\(([^"\)]+)\)
with@SuppressWarnings("$1")
.