PHP CS Fixer rules used within the WordPress team for sites and packages. This package centralizes formatting settings and allows for easy configuration of PHP CS Fixer.
composer require yard/php-cs-fixer-rulesThis package enhances the PhpCsFixer\Config class (see the ConfigInterface). One
can create a new configuration object by calling the static
create(Finder $finder, string $name = 'default'): self method.
<?phpusePhpCsFixer\Finder;
$finder = Finder::create()
->in(__DIR__)
->name('*.php')
->notName('*.blade.php')
->ignoreDotFiles(true)
->ignoreVCS(true)
->exclude('public')
->exclude('node_modules')
->exclude('build');
return \Yard\PhpCsFixerRules\Config::create($finder);removeRules(array $rulesKeys): self or removeRule(string $ruleKey): self allows you to remove rules.
/** * Default rules: * * [ * 'method_chaining_indentation' => true, * 'yoda_style' => [ * 'always_move_variable' => true, * 'equal' => true, * 'identical' => true, * 'less_and_greater' => true, * ], * 'binary_operator_spaces' => [ * 'default' => 'single_space', * 'operators' => [ * '=>' => null, * '|' => 'no_space', * ], * ], * ] */$config = \Yard\PhpCsFixerRules\Config::create($finder)
->removeRules(['yoda_style', 'binary_operator_spaces']); /** * Expected rule set: * * [ * 'method_chaining_indentation' => true, * ] */return$config->removeRule('method_chaining_indentation');
/** * Expected rule set: [] */mergeRules(array $rules): self allows you to add and override rules.
/** * Default rules: * * [ * 'yoda_style' => [ * 'always_move_variable' => true, * 'equal' => true, * 'identical' => true, * 'less_and_greater' => true, * ], * 'binary_operator_spaces' => [ * 'default' => 'single_space', * 'operators' => [ * '=>' => null, * '|' => 'no_space', * ], * ], * ] */return \Yard\PhpCsFixerRules\Config::create($finder)
->mergeRules([
'yoda_style' => [
'equal' => false,
],
'binary_operator_spaces' => [
'operators' => [
'|' => 'single_space',
'<>' => null,
]
]
]); /** * Expected rule set: * * [ * 'yoda_style' => [ * 'always_move_variable' => true, * 'equal' => false, // this setting changed! * 'identical' => true, * 'less_and_greater' => true, * ], * 'binary_operator_spaces' => [ * 'default' => 'single_space', * 'operators' => [ * '=>' => null, * '|' => 'single_space', // this setting changed! * '<>' => null, // this setting was added! * ], * ], * ] */Yard\PhpCsFixerRules\Config extends the PHP CS Fixer config object so all native methods are available. Note that the native PHP CS Fixer methods return a PhpCsFixer\ConfigInterface type (instead of Yard\PhpCsFixerRules\Interfaces\ConfigInterface). Your linter may not like this.
return \Yard\PhpCsFixerRules\Config::create($finder)
->setRiskyAllowed(false) // native PHP CS Fixer method
->mergeRules([ // Yard\PhpCsFixerRules\Config method'yoda_style' => [
'equal' => false,
],
'binary_operator_spaces' => [
'operators' => [
'|' => 'single_space',
'<>' => null,
]
]
]);RiskyAllowed is set to true by default. In older projects you may need to disable it.
return \Yard\PhpCsFixerRules\Config::create($finder)
->setRiskyAllowed(false);setDefaultRules(): self gets called by the static create(Finder $finder, string $name = 'default'): self method.
In normal use cases there is no need to call this method.