composer require antipodes/php-cs-fixer-config-antipodes --dev
Pick one of the rule sets:
Create a configuration file .php-cs-fixer.dist.php
in the root of your project:
<?php
use PhpCsFixer\Finder;
use Antipodes\PhpCsFixer\Config\Factory;
use Antipodes\PhpCsFixer\Config\RuleSet\Php74;
$config = Factory::fromRuleSet(new Php74());
$finder = Finder::create()
->in([
__DIR__,
])
->name('*.php')
->ignoreDotFiles(true)
->ignoreVCS(true);
return $config
->setFinder($finder)
->setRiskyAllowed(true)
->setUsingCache(true);
π‘ Optionally override rules from a rule set by passing in an array of rules to be merged in:
<?php
use PhpCsFixer\Finder;
use Antipodes\PhpCsFixer\Config\Factory;
use Antipodes\PhpCsFixer\Config\RuleSet\Php74;
-$config = Factory::fromRuleSet(new Php74());
+$config = Factory::fromRuleSet(new Php74(), [
+ 'mb_str_functions' => false,
+ 'strict_comparison' => false,
+]);
$finder = Finder::create()
->in([
__DIR__,
])
->name('*.php')
->ignoreDotFiles(true)
->ignoreVCS(true);
return $config
->setFinder($finder)
->setRiskyAllowed(true)
->setUsingCache(true);
If you like composer
scripts, add a coding-standards
script to composer.json
:
{
"name": "foo/bar",
"require": {
"php": "^7.3",
},
"require-dev": {
"antipodes/php-cs-fixer-config-antipodes": "~1.0.0"
+ },
+ "scripts": {
+ "lint": [
+ "./vendor/bin/php-cs-fixer fix -vvv --dry-run --show-progress=dots"
+ ],
+ "lint:fix": [
+ "./vendor/bin/php-cs-fixer fix -vvv --show-progress=dots"
+ ]
}
}
Run
composer lint
to lint the code.
Run
composer lint:fix
to automatically fix the code.
If you like GitHub Actions, add a php-lint
job to your workflow:
name: "π¨ PHP Linter"
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
php:
name: PHP ${{ matrix.php }}
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]')"
strategy:
fail-fast: false
matrix:
php: [ "7.4", "8.0" ]
steps:
- name: Checkout the project
uses: actions/checkout@v2
- name: Setup the PHP ${{ matrix.php }} environment on ${{ runner.os }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php }}
- name: Add HTTP basic auth credentials
run: echo '${{ secrets.COMPOSER_AUTH_JSON }}' > $GITHUB_WORKSPACE/auth.json
- name: Install Composer dependencies
run: composer install --no-progress --prefer-dist --optimize-autoloader --no-suggest
- name: Execute the lint script
run: composer run-script lint