Library helps to fix PHP code to conform Paysera PHP style guide.
- Add
Paysera\\PhpCsFixerConfig\\Composer\\PhpCsFixerConfigProvider::copyPhpCs
script topost-install-cmd
andpost-update-cmd
or otherscripts
- just make sure this script is executed oncomposer install
.
composer require --dev paysera/lib-php-cs-fixer-config
.- Make sure
php-cs-fixer.php
file is in project directory.
No need to install php-cs-fixer itself as this library comes with binary version of the fixer. This avoids requiring its dependencies inside your project, which could clash with existing ones.
To avoid duplication with php-cs-fixer library, it's named paysera-php-cs-fixer
.
php-cs-fixer.php
- all Paysera recommended fixers.php-cs-fixer-risky.php
- all risky fixers except recommendations (comment warnings).php-cs-fixer-safe.php
- all non risky fixers.
For new projects you can just use all the rules as usual.
For existing projects we recommend turning on the migration mode:
- Add call to
enableMigrationMode([])
toPayseraConventionsConfig
instance in yourphp-cs-fixer.php
file. - Run
{your-bin-dir}/php-cs-fixer
- it will give error with initial rule configuration to pass into that method. Just copy-and-paste it to yourphp-cs-fixer.php
file. - Enable one of the rules, apply fixes in the project, review and test them.
- Repeat with each new rule.
This allows to control which rules are enabled in the project thus letting manually tune the fixes already applied in the repository and forced for the new code. Also, your commits will be more focused as each of them will include only changes from a single fixer.
All rules are to be configured to allow easily spotting new rules in case they would be added (or removed) into the core.
For comments or suggestions for developers you should use default php-cs-fixer.php
file with all the rules.
For automatic checks there might be some false-positives so php-cs-fixer-risky.php
should be used in such cases.
You can look at .travis.yml
file in this repository for integration with travis on each pull request of your repository
(this will run the checks only for changed files).
Run in project directory by command: {your-bin-dir}/php-cs-fixer fix /path/to/code --verbose --dry-run --diff
Use --config=php-cs-fixer.php
flag for custom configuration.
If /path/to/code
is not defined php-cs-fixer
will run files from default src
directory excluding Test
folders.
--verbose
- show the applied rules. When using the txt format it will also display progress notifications.
A combination of --dry-run
and --diff
will display a summary of proposed fixes, leaving your files unchanged.
--format
option for the output format. Supported formats are txt
(default one), json
, xml
and junit
.
More information: PHP CS Fixer