{"id":22567829,"url":"https://github.com/yardinternet/php-cs-fixer-rules","last_synced_at":"2025-04-10T12:22:53.326Z","repository":{"id":263629359,"uuid":"888413718","full_name":"yardinternet/php-cs-fixer-rules","owner":"yardinternet","description":"Yard PHP CS Fixer rules","archived":false,"fork":false,"pushed_at":"2025-04-07T03:06:18.000Z","size":437,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-07T04:22:47.081Z","etag":null,"topics":["wordpress"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yardinternet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-14T11:04:00.000Z","updated_at":"2025-04-07T03:06:21.000Z","dependencies_parsed_at":"2024-11-19T15:51:35.488Z","dependency_job_id":"08b2f8fd-80c0-4493-9f63-831210781e84","html_url":"https://github.com/yardinternet/php-cs-fixer-rules","commit_stats":null,"previous_names":["yardinternet/php-cs-fixer-rules"],"tags_count":5,"template":false,"template_full_name":"yardinternet/skeleton-package","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yardinternet%2Fphp-cs-fixer-rules","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yardinternet%2Fphp-cs-fixer-rules/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yardinternet%2Fphp-cs-fixer-rules/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yardinternet%2Fphp-cs-fixer-rules/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yardinternet","download_url":"https://codeload.github.com/yardinternet/php-cs-fixer-rules/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248217109,"owners_count":21066633,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["wordpress"],"created_at":"2024-12-08T00:09:21.416Z","updated_at":"2025-04-10T12:22:53.303Z","avatar_url":"https://github.com/yardinternet.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# php-cs-fixer-rules\n\n[![Code Style](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/format-php.yml/badge.svg?no-cache)](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/format-php.yml)\n[![PHPStan](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/phpstan.yml/badge.svg?no-cache)](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/phpstan.yml)\n[![Tests](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/run-tests.yml/badge.svg?no-cache)](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/run-tests.yml)\n[![Code Coverage Badge](https://github.com/yardinternet/php-cs-fixer-rules/blob/badges/coverage.svg)](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/badges.yml)\n[![Lines of Code Badge](https://github.com/yardinternet/php-cs-fixer-rules/blob/badges/lines-of-code.svg)](https://github.com/yardinternet/php-cs-fixer-rules/actions/workflows/badges.yml)\n\nPHP CS Fixer rules used within the WordPress team for sites and packages.\nThis package centralizes formatting settings and allows for easy configuration of PHP CS Fixer.\n\n## Installation\n\n```sh\ncomposer require yard/php-cs-fixer-rules\n```\n\n## Usage\n\nThis package enhances the `PhpCsFixer\\Config` class (see the [ConfigInterface](src/Interfaces/ConfigInterface.php)). One\ncan create a new configuration object by calling the static\n`create(Finder $finder, string $name = 'default'): self` method.\n\n```php\n\u003c?php\n\nuse PhpCsFixer\\Finder;\n\n$finder = Finder::create()\n    -\u003ein(__DIR__)\n    -\u003ename('*.php')\n    -\u003enotName('*.blade.php')\n    -\u003eignoreDotFiles(true)\n    -\u003eignoreVCS(true)\n    -\u003eexclude('public')\n    -\u003eexclude('node_modules')\n    -\u003eexclude('build');\n\nreturn \\Yard\\PhpCsFixerRules\\Config::create($finder);\n```\n\n### Removing rules\n\n`removeRules(array $rulesKeys): self` or `removeRule(string $ruleKey): self` allows you to remove rules.\n\n```php\n\n/**\n * Default rules:\n * \n * [\n *     'method_chaining_indentation' =\u003e true,\n *     'yoda_style' =\u003e [\n *         'always_move_variable' =\u003e true,\n *         'equal' =\u003e true,\n *         'identical' =\u003e true,\n *         'less_and_greater' =\u003e true,\n *     ],\n *     'binary_operator_spaces' =\u003e [\n *         'default' =\u003e 'single_space',\n *         'operators' =\u003e [\n *             '=\u003e' =\u003e null,\n *             '|' =\u003e 'no_space',\n *         ],\n *     ],\n * ]\n */\n\n$config = \\Yard\\PhpCsFixerRules\\Config::create($finder)\n    -\u003eremoveRules(['yoda_style', 'binary_operator_spaces']); \n\n/**\n * Expected rule set: \n * \n * [\n *     'method_chaining_indentation' =\u003e true,\n * ]\n */\n\n\nreturn $config-\u003eremoveRule('method_chaining_indentation');\n\n/**\n * Expected rule set: []\n */\n```\n\n### Add and override rules\n\n`mergeRules(array $rules): self` allows you to add and override rules.\n\n```php\n\n/**\n * Default rules:\n * \n * [\n *     'yoda_style' =\u003e [\n *         'always_move_variable' =\u003e true,\n *         'equal' =\u003e true,\n *         'identical' =\u003e true,\n *         'less_and_greater' =\u003e true,\n *     ],\n *     'binary_operator_spaces' =\u003e [\n *         'default' =\u003e 'single_space',\n *         'operators' =\u003e [\n *             '=\u003e' =\u003e null,\n *             '|' =\u003e 'no_space',\n *         ],\n *     ],\n * ]\n */\n\nreturn \\Yard\\PhpCsFixerRules\\Config::create($finder)\n    -\u003emergeRules([\n        'yoda_style' =\u003e [\n            'equal' =\u003e false,\n        ],\n        'binary_operator_spaces' =\u003e [\n            'operators' =\u003e [\n                '|' =\u003e 'single_space',\n                '\u003c\u003e' =\u003e null,\n            ]\n        ]\n    ]); \n\n/**\n * Expected rule set: \n *  \n * [\n *     'yoda_style' =\u003e [\n *         'always_move_variable' =\u003e true,\n *         'equal' =\u003e false, // this setting changed!\n *         'identical' =\u003e true,\n *         'less_and_greater' =\u003e true,\n *     ],\n *     'binary_operator_spaces' =\u003e [\n *         'default' =\u003e 'single_space',\n *         'operators' =\u003e [\n *             '=\u003e' =\u003e null,\n *             '|' =\u003e 'single_space', // this setting changed!\n *             '\u003c\u003e' =\u003e null, // this setting was added!\n *         ],\n *     ],\n * ]\n */\n\n```\n\n### Calling native PHP CS Fixer config methods\n\n[Yard\\PhpCsFixerRules\\Config](src/Config.php) extends the PHP CS Fixer config object so all native methods are\navailable. Note that the native PHP CS Fixer methods return\na [PhpCsFixer\\ConfigInterface](./vendor/friendsofphp/php-cs-fixer/src/ConfigInterface.php) type (instead\nof [Yard\\PhpCsFixerRules\\Interfaces\\ConfigInterface](src/Interfaces/ConfigInterface.php)).\nYour linter may not like this.\n\n```php\n\nreturn \\Yard\\PhpCsFixerRules\\Config::create($finder)\n    -\u003esetRiskyAllowed(false) // native PHP CS Fixer method\n    -\u003emergeRules([ // Yard\\PhpCsFixerRules\\Config method\n        'yoda_style' =\u003e [\n            'equal' =\u003e false,\n        ],\n        'binary_operator_spaces' =\u003e [\n            'operators' =\u003e [\n                '|' =\u003e 'single_space',\n                '\u003c\u003e' =\u003e null,\n            ]\n        ]\n    ]);\n```\n\n## Older projects and risky fixers\n\n`RiskyAllowed` is set to [true](config/rules.php) by default. In older projects you may need to disable it.\n\n```php\nreturn \\Yard\\PhpCsFixerRules\\Config::create($finder)\n    -\u003esetRiskyAllowed(false);\n```\n\n### setDefaultRules()\n\n`setDefaultRules(): self` gets called by the static `create(Finder $finder, string $name = 'default'): self` method.\nIn normal use cases there is no need to call this method.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyardinternet%2Fphp-cs-fixer-rules","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyardinternet%2Fphp-cs-fixer-rules","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyardinternet%2Fphp-cs-fixer-rules/lists"}