Conditions | 39 |
Paths | > 20000 |
Total Lines | 180 |
Code Lines | 125 |
Lines | 139 |
Ratio | 77.22 % |
Changes | 0 |
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
1 | <?php |
||
70 | public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) |
||
71 | { |
||
72 | $this->requiredSpacesAfterOpen = (int) $this->requiredSpacesAfterOpen; |
||
73 | $this->requiredSpacesBeforeClose = (int) $this->requiredSpacesBeforeClose; |
||
74 | $tokens = $phpcsFile->getTokens(); |
||
75 | |||
76 | $openingBracket = $phpcsFile->findNext(T_OPEN_PARENTHESIS, $stackPtr); |
||
77 | if ($openingBracket === false) { |
||
78 | $error = 'Possible parse error: FOREACH has no opening parenthesis'; |
||
79 | $phpcsFile->addWarning($error, $stackPtr, 'MissingOpenParenthesis'); |
||
80 | return; |
||
81 | } |
||
82 | |||
83 | if (isset($tokens[$openingBracket]['parenthesis_closer']) === false) { |
||
84 | $error = 'Possible parse error: FOREACH has no closing parenthesis'; |
||
85 | $phpcsFile->addWarning($error, $stackPtr, 'MissingCloseParenthesis'); |
||
86 | return; |
||
87 | } |
||
88 | |||
89 | $closingBracket = $tokens[$openingBracket]['parenthesis_closer']; |
||
90 | |||
91 | View Code Duplication | if ($this->requiredSpacesAfterOpen === 0 && $tokens[($openingBracket + 1)]['code'] === T_WHITESPACE) { |
|
92 | $error = 'Space found after opening bracket of FOREACH loop'; |
||
93 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceAfterOpen'); |
||
94 | if ($fix === true) { |
||
95 | $phpcsFile->fixer->replaceToken(($openingBracket + 1), ''); |
||
96 | } |
||
97 | } else if ($this->requiredSpacesAfterOpen > 0) { |
||
98 | $spaceAfterOpen = 0; |
||
99 | if ($tokens[($openingBracket + 1)]['code'] === T_WHITESPACE) { |
||
100 | $spaceAfterOpen = strlen($tokens[($openingBracket + 1)]['content']); |
||
101 | } |
||
102 | |||
103 | if ($spaceAfterOpen !== $this->requiredSpacesAfterOpen) { |
||
104 | $error = 'Expected %s spaces after opening bracket; %s found'; |
||
105 | $data = array( |
||
106 | $this->requiredSpacesAfterOpen, |
||
107 | $spaceAfterOpen, |
||
108 | ); |
||
109 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingAfterOpen', $data); |
||
110 | if ($fix === true) { |
||
111 | $padding = str_repeat(' ', $this->requiredSpacesAfterOpen); |
||
112 | if ($spaceAfterOpen === 0) { |
||
113 | $phpcsFile->fixer->addContent($openingBracket, $padding); |
||
114 | } else { |
||
115 | $phpcsFile->fixer->replaceToken(($openingBracket + 1), $padding); |
||
116 | } |
||
117 | } |
||
118 | } |
||
119 | }//end if |
||
120 | |||
121 | View Code Duplication | if ($this->requiredSpacesBeforeClose === 0 && $tokens[($closingBracket - 1)]['code'] === T_WHITESPACE) { |
|
122 | $error = 'Space found before closing bracket of FOREACH loop'; |
||
123 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceBeforeClose'); |
||
124 | if ($fix === true) { |
||
125 | $phpcsFile->fixer->replaceToken(($closingBracket - 1), ''); |
||
126 | } |
||
127 | } else if ($this->requiredSpacesBeforeClose > 0) { |
||
128 | $spaceBeforeClose = 0; |
||
129 | if ($tokens[($closingBracket - 1)]['code'] === T_WHITESPACE) { |
||
130 | $spaceBeforeClose = strlen($tokens[($closingBracket - 1)]['content']); |
||
131 | } |
||
132 | |||
133 | if ($spaceBeforeClose !== $this->requiredSpacesBeforeClose) { |
||
134 | $error = 'Expected %s spaces before closing bracket; %s found'; |
||
135 | $data = array( |
||
136 | $this->requiredSpacesBeforeClose, |
||
137 | $spaceBeforeClose, |
||
138 | ); |
||
139 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpaceBeforeClose', $data); |
||
140 | if ($fix === true) { |
||
141 | $padding = str_repeat(' ', $this->requiredSpacesBeforeClose); |
||
142 | if ($spaceBeforeClose === 0) { |
||
143 | $phpcsFile->fixer->addContentBefore($closingBracket, $padding); |
||
144 | } else { |
||
145 | $phpcsFile->fixer->replaceToken(($closingBracket - 1), $padding); |
||
146 | } |
||
147 | } |
||
148 | } |
||
149 | }//end if |
||
150 | |||
151 | $asToken = $phpcsFile->findNext(T_AS, $openingBracket); |
||
152 | if ($asToken === false) { |
||
153 | $error = 'Possible parse error: FOREACH has no AS statement'; |
||
154 | $phpcsFile->addWarning($error, $stackPtr, 'MissingAs'); |
||
155 | return; |
||
156 | } |
||
157 | |||
158 | $content = $tokens[$asToken]['content']; |
||
159 | View Code Duplication | if ($content !== strtolower($content)) { |
|
160 | $expected = strtolower($content); |
||
161 | $error = 'AS keyword must be lowercase; expected "%s" but found "%s"'; |
||
162 | $data = array( |
||
163 | $expected, |
||
164 | $content, |
||
165 | ); |
||
166 | |||
167 | $fix = $phpcsFile->addFixableError($error, $asToken, 'AsNotLower', $data); |
||
168 | if ($fix === true) { |
||
169 | $phpcsFile->fixer->replaceToken($asToken, $expected); |
||
170 | } |
||
171 | } |
||
172 | |||
173 | $doubleArrow = $phpcsFile->findNext(T_DOUBLE_ARROW, $asToken, $closingBracket); |
||
174 | |||
175 | if ($doubleArrow !== false) { |
||
176 | View Code Duplication | if ($tokens[($doubleArrow - 1)]['code'] !== T_WHITESPACE) { |
|
177 | $error = 'Expected 1 space before "=>"; 0 found'; |
||
178 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NoSpaceBeforeArrow'); |
||
179 | if ($fix === true) { |
||
180 | $phpcsFile->fixer->addContentBefore($doubleArrow, ' '); |
||
181 | } |
||
182 | } else { |
||
183 | if (strlen($tokens[($doubleArrow - 1)]['content']) !== 1) { |
||
184 | $spaces = strlen($tokens[($doubleArrow - 1)]['content']); |
||
185 | $error = 'Expected 1 space before "=>"; %s found'; |
||
186 | $data = array($spaces); |
||
187 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingBeforeArrow', $data); |
||
188 | if ($fix === true) { |
||
189 | $phpcsFile->fixer->replaceToken(($doubleArrow - 1), ' '); |
||
190 | } |
||
191 | } |
||
192 | } |
||
193 | |||
194 | View Code Duplication | if ($tokens[($doubleArrow + 1)]['code'] !== T_WHITESPACE) { |
|
195 | $error = 'Expected 1 space after "=>"; 0 found'; |
||
196 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NoSpaceAfterArrow'); |
||
197 | if ($fix === true) { |
||
198 | $phpcsFile->fixer->addContent($doubleArrow, ' '); |
||
199 | } |
||
200 | } else { |
||
201 | if (strlen($tokens[($doubleArrow + 1)]['content']) !== 1) { |
||
202 | $spaces = strlen($tokens[($doubleArrow + 1)]['content']); |
||
203 | $error = 'Expected 1 space after "=>"; %s found'; |
||
204 | $data = array($spaces); |
||
205 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingAfterArrow', $data); |
||
206 | if ($fix === true) { |
||
207 | $phpcsFile->fixer->replaceToken(($doubleArrow + 1), ' '); |
||
208 | } |
||
209 | } |
||
210 | } |
||
211 | }//end if |
||
212 | |||
213 | View Code Duplication | if ($tokens[($asToken - 1)]['code'] !== T_WHITESPACE) { |
|
214 | $error = 'Expected 1 space before "as"; 0 found'; |
||
215 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NoSpaceBeforeAs'); |
||
216 | if ($fix === true) { |
||
217 | $phpcsFile->fixer->addContentBefore($asToken, ' '); |
||
218 | } |
||
219 | } else { |
||
220 | if (strlen($tokens[($asToken - 1)]['content']) !== 1) { |
||
221 | $spaces = strlen($tokens[($asToken - 1)]['content']); |
||
222 | $error = 'Expected 1 space before "as"; %s found'; |
||
223 | $data = array($spaces); |
||
224 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingBeforeAs', $data); |
||
225 | if ($fix === true) { |
||
226 | $phpcsFile->fixer->replaceToken(($asToken - 1), ' '); |
||
227 | } |
||
228 | } |
||
229 | } |
||
230 | |||
231 | View Code Duplication | if ($tokens[($asToken + 1)]['code'] !== T_WHITESPACE) { |
|
232 | $error = 'Expected 1 space after "as"; 0 found'; |
||
233 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'NoSpaceAfterAs'); |
||
234 | if ($fix === true) { |
||
235 | $phpcsFile->fixer->addContent($asToken, ' '); |
||
236 | } |
||
237 | } else { |
||
238 | if (strlen($tokens[($asToken + 1)]['content']) !== 1) { |
||
239 | $spaces = strlen($tokens[($asToken + 1)]['content']); |
||
240 | $error = 'Expected 1 space after "as"; %s found'; |
||
241 | $data = array($spaces); |
||
242 | $fix = $phpcsFile->addFixableError($error, $stackPtr, 'SpacingAfterAs', $data); |
||
243 | if ($fix === true) { |
||
244 | $phpcsFile->fixer->replaceToken(($asToken + 1), ' '); |
||
245 | } |
||
246 | } |
||
247 | } |
||
248 | |||
249 | }//end process() |
||
250 | |||
253 |
You can fix this by adding a namespace to your class:
When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.