-
Notifications
You must be signed in to change notification settings - Fork 1
/
.php-cs-fixer.dist.php
186 lines (155 loc) · 8.52 KB
/
.php-cs-fixer.dist.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<?php
// This file is based on https://github.com/stechstudio/Laravel-PHP-CS-Fixer
$rules = [
/** PHP arrays should be declared using the configured syntax. */
'array_syntax' => ['syntax' => 'short'],
/** Binary operators should be surrounded by space as configured. */
'binary_operator_spaces' => [
'default' => 'single_space',
],
/** There MUST be one blank line after the namespace declaration. */
'blank_line_after_namespace' => true,
/** Ensure there is no code on the same line as the PHP open tag and it is followed by a blank line. */
'blank_line_after_opening_tag' => true,
/** An empty line feed must precede any configured statement. */
'blank_line_before_statement' => [
'statements' => ['return']
],
/** The body of each structure MUST be enclosed by braces. Braces should be properly placed. Body of braces should be properly indented. */
'braces' => true,
/** A single space or none should be between cast and variable. */
'cast_spaces' => true,
/** Whitespace around the keywords of a class, trait or interfaces definition should be one space. */
'class_definition' => true,
/** Concatenation should be spaced according configuration. */
'concat_space' => [
'spacing' => 'one'
],
/** Equal sign in declare statement should be surrounded by spaces or not following configuration. */
'declare_equal_normalize' => true,
/** The keyword elseif should be used instead of else if so that all control keywords look like single words. */
'elseif' => true,
/** PHP code MUST use only UTF-8 without BOM (remove BOM). */
'encoding' => true,
/** PHP code must use the long <?php tags or short-echo <?= tags and not other tag variations. */
'full_opening_tag' => true,
/** Transforms imported FQCN parameters and return types in function arguments to short version. */
'fully_qualified_strict_types' => true,
/** Spaces should be properly placed in a function declaration. */
'function_declaration' => true,
/** nsure single space between function's argument and its typehint. */
'function_typehint_space' => true,
/** Convert heredoc to nowdoc where possible. */
'heredoc_to_nowdoc' => true,
/** Include/Require and file path should be divided with a single space. File path should not be placed under brackets. */
'include' => true,
/** Pre- or post-increment and decrement operators should be used if possible. */
'increment_style' => ['style' => 'post'],
/** Code MUST use configured indentation type. */
'indentation_type' => true,
/** Ensure there is no code on the same line as the PHP open tag. */
'linebreak_after_opening_tag' => true,
/** All PHP files must use same line ending. */
'line_ending' => true,
/** Cast should be written in lower case. */
'lowercase_cast' => true,
/** PHP keywords MUST be in lower case. */
'lowercase_keywords' => true,
/** Class static references self, static and parent MUST be in lower case. */
'lowercase_static_reference' => true,
/** Magic method definitions and calls must be using the correct casing. */
'magic_method_casing' => true,
/** Magic constants should be referred to using the correct casing */
'magic_constant_casing' => true,
/**
* In method arguments and method call, there MUST NOT be a space before each comma and
* there MUST be one space after each comma. Argument lists MAY be split across multiple
* lines, where each subsequent line is indented once. When doing so, the first item in the
* list MUST be on the next line, and there MUST be only one argument per line.
*/
'method_argument_space' => true,
/** Function defined by PHP should be called using the correct casing. */
'native_function_casing' => true,
/** Removes extra blank lines and/or blank lines following configuration. */
'no_extra_blank_lines' => [
'tokens' => [
'extra',
'throw',
'use',
'use_trait',
]
],
/** There should be no empty lines after class opening brace. */
'no_blank_lines_after_class_opening' => true,
'no_blank_lines_after_phpdoc' => true,
'no_closing_tag' => true,
'no_empty_phpdoc' => true,
'no_empty_statement' => true,
'no_leading_import_slash' => true,
'no_leading_namespace_whitespace' => true,
'no_mixed_echo_print' => [
'use' => 'echo'
],
'no_multiline_whitespace_around_double_arrow' => true,
'multiline_whitespace_before_semicolons' => [
'strategy' => 'no_multi_line'
],
'no_short_bool_cast' => true,
'no_singleline_whitespace_before_semicolons' => true,
'no_spaces_after_function_name' => true,
'no_spaces_around_offset' => true,
'no_spaces_inside_parenthesis' => true,
'no_trailing_comma_in_list_call' => true,
'no_trailing_comma_in_singleline_array' => true,
'no_trailing_whitespace' => true,
'no_trailing_whitespace_in_comment' => true,
'no_unneeded_control_parentheses' => true,
'no_useless_return' => true,
'no_whitespace_before_comma_in_array' => true,
'no_whitespace_in_blank_line' => true,
'normalize_index_brace' => true,
'not_operator_with_successor_space' => false,
'object_operator_without_whitespace' => true,
'ordered_imports' => ['sort_algorithm' => 'alpha'],
'phpdoc_indent' => true,
'phpdoc_no_access' => true,
'phpdoc_no_package' => true,
'phpdoc_no_useless_inheritdoc' => true,
'phpdoc_scalar' => 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,
'short_scalar_cast' => true,
'simplified_null_return' => false, // disabled by Shift
'single_blank_line_at_eof' => true,
'single_blank_line_before_namespace' => true,
'single_class_element_per_statement' => true,
'single_import_per_statement' => true,
'single_line_after_imports' => true,
'single_line_comment_style' => [
'comment_types' => ['hash']
],
'single_quote' => true,
'space_after_semicolon' => true,
'standardize_not_equals' => true,
'switch_case_semicolon_to_colon' => true,
'switch_case_space' => true,
'ternary_operator_spaces' => true,
'trailing_comma_in_multiline' => true,
'trim_array_spaces' => true,
'unary_operator_spaces' => true,
'visibility_required' => [
'elements' => ['method','property']
],
'whitespace_after_comma_in_array' => true,
];
$config = new PhpCsFixer\Config();
$finder = PhpCsFixer\Finder::create()
->in(__DIR__ . '/src')
->in(__DIR__ . '/tests');
return $config
->setRules($rules)
->setFinder($finder);