It reports so many violations, I don't think anyone paid attention
to them in some time.
Also there's code sniffer which is:
- installed
- works
- and also run on travis explicitly
Here are the current violations:
```
$ vendor/bin/grumphp run
PHP Deprecated: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in /Users/mfischer/src/laravel-ide-helper/vendor/phpro/grumphp/src/Locator/ConfigurationFile.php on line 75
Deprecated: strpos(): Non-string needles will be interpreted as strings in the future. Use an explicit chr() call to preserve the current behavior in /Users/mfischer/src/laravel-ide-helper/vendor/phpro/grumphp/src/Locator/ConfigurationFile.php on line 75
GrumPHP is sniffing your code!✘
Running task 2/2: Phpunit... ✔
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▄▄▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▄
▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▐▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▄███▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▐█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▀█▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▌
▀▀▓▓▓▓▓▓▓▓▓▓▓▓█▀▀▀▀▀▀▀▀▀▀▀▀▀▀████████████▄
▄███████ ██████████
███████▀ ▀▀▀▀▀▄ ▄▀▀▀▀▀ █████ ▀
▐████ ▐██ ▐██ ████▌
████▌ ███
▌██▌ ▄▄ ▄▄ ▐███
███ ▄▄▄▄▄▄▄▄▄▄▄▄ ▐███
██▄ ▐███████████████████████████
█▀███████████▀ ▀▀███████████
██████████▄███████▄███████████
▐█████████████████████████████
█████████████████████████████
██ █████████████████████▐██▀
▀ ▐███████████████████▌ ▐▀
████▀████████▀▐███
▀█▌ ▐█████ ██▌
██▀ ▐▀
██████████████████████████████████
█░░░░░░▀█▀░░░░░░▀█░░░░░░▀█▀░░░░░▀█
█░░▐█▌░░█░░░██░░░█░░██░░░█░░░██░░█
█░░▐█▌░░█░░░██░░░█░░██░░░█░░░██░░█
█░░▐█▌░░█░░░██░░░█░░░░░░▄█░░▄▄▄▄▄█
█░░▐█▌░░█░░░██░░░█░░░░████░░░░░░░█
█░░░█░░░█▄░░░░░░▄█░░░░████▄░░░░░▄█
██████████████████████████████████
FILE: ...Users/mfischer/src/laravel-ide-helper/resources/views/helper.php
----------------------------------------------------------------------
FOUND 46 ERRORS AND 3 WARNINGS AFFECTING 24 LINES
----------------------------------------------------------------------
23 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
23 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
24 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
24 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
24 | ERROR | [x] Newline required after opening brace
24 | ERROR | [x] Closing brace must be on a line by itself
24 | ERROR | [x] Each PHP statement must be on a line by itself
26 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
26 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
26 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
26 | ERROR | [x] Blank line found at start of control structure
28 | ERROR | [x] Line indented incorrectly; expected at least 8
| | spaces, found 4
29 | ERROR | [x] Line indented incorrectly; expected at least 8
| | spaces, found 4
30 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
30 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
30 | ERROR | [x] Blank line found at start of control structure
32 | ERROR | [x] Line indented incorrectly; expected at least 12
| | spaces, found 8
34 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
34 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
34 | ERROR | [x] Blank line found at start of control structure
37 | ERROR | [x] Closing brace indented incorrectly; expected 9
| | spaces, found 12
39 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
39 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
51 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
51 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
53 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
53 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
53 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
53 | ERROR | [x] Blank line found at start of control structure
55 | ERROR | [x] Line indented incorrectly; expected at least 8
| | spaces, found 4
55 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
55 | WARNING | [ ] Line exceeds 120 characters; contains 180
| | characters
56 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0
| | found
56 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
59 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
59 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
59 | ERROR | [x] Blank line found at start of control structure
62 | ERROR | [x] Closing brace indented incorrectly; expected 13
| | spaces, found 16
64 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
64 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
70 | ERROR | [x] Closing brace indented incorrectly; expected 4
| | spaces, found 0
76 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
76 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
78 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
82 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
82 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
109 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
112 | WARNING | [ ] Line exceeds 120 characters; contains 141
| | characters
113 | WARNING | [ ] Line exceeds 120 characters; contains 139
| | characters
----------------------------------------------------------------------
PHPCBF CAN FIX THE 46 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
FILE: /Users/mfischer/src/laravel-ide-helper/resources/views/meta.php
----------------------------------------------------------------------
FOUND 10 ERRORS AFFECTING 6 LINES
----------------------------------------------------------------------
14 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
17 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
17 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0 found
17 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
23 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
24 | ERROR | [x] Spaces must be used to indent lines; tabs are not
| | allowed
26 | ERROR | [x] Line indented incorrectly; expected at least 4
| | spaces, found 0
26 | ERROR | [x] Expected 1 space(s) after FOREACH keyword; 0 found
26 | ERROR | [x] Expected 1 space(s) after closing parenthesis;
| | found 0
29 | ERROR | [x] Spaces must be used to indent lines; tabs are not
| | allowed
----------------------------------------------------------------------
PHPCBF CAN FIX THE 10 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------
Time: 260ms; Memory: 12MB
```
This update improves the parsing of return types, allowing array return
types to be recognized.
This was needed to properly recognize the files and allFiles methods as
duplicates (the function filtering duplicate definitions -
`removeDuplicateMethodsFromPhpDoc` in `Alias.php` - didn't recognise
them as duplicates, because the return type was seen as part of the name).
When a method is declared both in the phpdoc and in the class itself,
PhpStorm (2018.3) complains about duplicate function declarations, preventing
correct code hinting.
To solve this, I remove the already declared functions from the generated dockblocks.
Use the standard reflection methods for getting the methods, and use the
Reflection Docblock library from phpDocumentor (which seems more active
and more used)