https://github.com/yardinternet/php-cs-fixer-rules
Yard PHP CS Fixer rules
https://github.com/yardinternet/php-cs-fixer-rules
wordpress
Last synced: about 1 year ago
JSON representation
Yard PHP CS Fixer rules
- Host: GitHub
- URL: https://github.com/yardinternet/php-cs-fixer-rules
- Owner: yardinternet
- License: mit
- Created: 2024-11-14T11:04:00.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-07T03:06:18.000Z (about 1 year ago)
- Last Synced: 2025-04-07T04:22:47.081Z (about 1 year ago)
- Topics: wordpress
- Language: PHP
- Homepage:
- Size: 427 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# php-cs-fixer-rules
[](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/format-php.yml)
[](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/phpstan.yml)
[](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/run-tests.yml)
[](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/badges.yml)
[](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/badges.yml)
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.
## Installation
```sh
composer require yard/php-cs-fixer-rules
```
## Usage
This package enhances the `PhpCsFixer\Config` class (see the [ConfigInterface](src/Interfaces/ConfigInterface.php)). One
can create a new configuration object by calling the static
`create(Finder $finder, string $name = 'default'): self` method.
```php
in(__DIR__)
->name('*.php')
->notName('*.blade.php')
->ignoreDotFiles(true)
->ignoreVCS(true)
->exclude('public')
->exclude('node_modules')
->exclude('build');
return \Yard\PhpCsFixerRules\Config::create($finder);
```
### Removing rules
`removeRules(array $rulesKeys): self` or `removeRule(string $ruleKey): self` allows you to remove rules.
```php
/**
* 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: []
*/
```
### Add and override rules
`mergeRules(array $rules): self` allows you to add and override rules.
```php
/**
* 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!
* ],
* ],
* ]
*/
```
### Calling native PHP CS Fixer config methods
[Yard\PhpCsFixerRules\Config](src/Config.php) 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](./vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php) type (instead
of [Yard\PhpCsFixerRules\Interfaces\ConfigInterface](src/Interfaces/ConfigInterface.php)).
Your linter may not like this.
```php
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,
]
]
]);
```
## Older projects and risky fixers
`RiskyAllowed` is set to [true](config/rules.php) by default. In older projects you may need to disable it.
```php
return \Yard\PhpCsFixerRules\Config::create($finder)
->setRiskyAllowed(false);
```
### setDefaultRules()
`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.