-
-
Save Arkanius/ec2108d23e5bddfcf575b27c9d12a5f5 to your computer and use it in GitHub Desktop.
PHP-CS-Fixer configuration file. PSR-2 plus some opinionated options to make code cleaner.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Rules we follow are from PSR-2 as well as the rectified PSR-2 guide. | |
* | |
* - https://github.com/FriendsOfPHP/PHP-CS-Fixer | |
* - https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md | |
* - https://github.com/php-fig-rectified/fig-rectified-standards/blob/master/PSR-2-R-coding-style-guide-additions.md | |
* | |
* If something isn't addressed in either of those, some other common community rules are | |
* used that might not be addressed explicitly in PSR-2 in order to improve code quality | |
* (so that devs don't need to comment on them in Code Reviews). | |
* | |
* For instance: removing trailing white space, removing extra line breaks where | |
* they're not needed (back to back, beginning or end of function/class, etc.), | |
* adding trailing commas in the last line of an array, etc. | |
*/ | |
$finder = PhpCsFixer\Finder::create() | |
->exclude('vendor') | |
->exclude('api-docs') | |
->exclude('composer-cache') | |
->exclude('db-data') | |
->exclude('redis-data') | |
->exclude('docker') | |
->in(__DIR__); | |
return PhpCsFixer\Config::create() | |
->setRules(array( | |
'@PSR2' => true, | |
'array_indentation' => true, | |
'array_syntax' => array('syntax' => 'short'), | |
'combine_consecutive_unsets' => true, | |
'class_attributes_separation' => true, | |
'multiline_whitespace_before_semicolons' => true, | |
'single_quote' => false, | |
'binary_operator_spaces' => array( | |
'align_double_arrow' => true, | |
'align_equals' => true, | |
), | |
// 'blank_line_after_opening_tag' => true, | |
// 'blank_line_before_return' => true, | |
'braces' => array( | |
'allow_single_line_closure' => true, | |
), | |
// 'cast_spaces' => true, | |
// 'class_definition' => array('singleLine' => true), | |
'concat_space' => array('spacing' => 'one'), | |
'declare_equal_normalize' => true, | |
'single_line_comment_style' => true, | |
'include' => true, | |
'lowercase_cast' => true, | |
// 'native_function_casing' => true, | |
// 'new_with_braces' => true, | |
// 'no_blank_lines_after_class_opening' => true, | |
// 'no_blank_lines_after_phpdoc' => true, | |
// 'no_empty_comment' => true, | |
// 'no_empty_phpdoc' => true, | |
// 'no_empty_statement' => true, | |
'no_extra_blank_lines' => array( | |
'curly_brace_block', | |
'extra', | |
'parenthesis_brace_block', | |
'square_brace_block', | |
'throw', | |
'use', | |
), | |
// 'no_leading_import_slash' => true, | |
// 'no_leading_namespace_whitespace' => true, | |
// 'no_mixed_echo_print' => array('use' => 'echo'), | |
'no_multiline_whitespace_around_double_arrow' => true, | |
// 'no_short_bool_cast' => true, | |
// 'no_singleline_whitespace_before_semicolons' => true, | |
'no_spaces_around_offset' => true, | |
// 'no_trailing_comma_in_list_call' => true, | |
// 'no_trailing_comma_in_singleline_array' => true, | |
// 'no_unneeded_control_parentheses' => true, | |
// 'no_unused_imports' => true, | |
'no_whitespace_before_comma_in_array' => true, | |
'no_whitespace_in_blank_line' => true, | |
// 'normalize_index_brace' => true, | |
'object_operator_without_whitespace' => true, | |
// 'php_unit_fqcn_annotation' => true, | |
// 'phpdoc_align' => true, | |
// 'phpdoc_annotation_without_dot' => true, | |
// 'phpdoc_indent' => true, | |
// 'phpdoc_inline_tag' => true, | |
// 'phpdoc_no_access' => true, | |
// 'phpdoc_no_alias_tag' => true, | |
// 'phpdoc_no_empty_return' => true, | |
// 'phpdoc_no_package' => true, | |
// 'phpdoc_no_useless_inheritdoc' => true, | |
// 'phpdoc_return_self_reference' => true, | |
// 'phpdoc_scalar' => true, | |
// 'phpdoc_separation' => true, | |
// 'phpdoc_single_line_var_spacing' => true, | |
// 'phpdoc_summary' => true, | |
// 'phpdoc_to_comment' => true, | |
// 'phpdoc_trim' => true, | |
// 'phpdoc_types' => true, | |
// 'phpdoc_var_without_name' => true, | |
// 'pre_increment' => true, | |
// 'return_type_declaration' => true, | |
// 'self_accessor' => true, | |
// 'short_scalar_cast' => true, | |
'single_blank_line_before_namespace' => true, | |
// 'single_class_element_per_statement' => true, | |
// 'space_after_semicolon' => true, | |
// 'standardize_not_equals' => true, | |
'ternary_operator_spaces' => true, | |
// 'trailing_comma_in_multiline_array' => true, | |
'trim_array_spaces' => true, | |
'unary_operator_spaces' => true, | |
'whitespace_after_comma_in_array' => true, | |
)) | |
//->setIndent("\t") | |
->setLineEnding("\n") | |
; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
// ... | |
"scripts": { | |
"lint": [ | |
"php-cs-fixer fix --diff --dry-run --rules=@Symfony ./app", | |
"php-cs-fixer fix --diff --dry-run --rules=@Symfony./config", | |
"php-cs-fixer fix --diff --dry-run --rules=@Symfony ./tests" | |
], | |
"fix": [ | |
"php-cs-fixer fix --verbose --rules=@Symfony ./app", | |
"php-cs-fixer fix --verbose --rules=@Symfony ./config", | |
"php-cs-fixer fix --verbose --rules=@Symfony ./tests" | |
] | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment