noverify
noverify copied to clipboard
Pretty fast linter (code static analysis utility) for PHP
This is an epic-like (progress tracking) issue for porting checks that are implemented in `php -l`, but are not included in noverify. The main benefit is to make it possible...
Every good linter has config file for example .noverifyrc where you can add all exclude/include rules also good option add --generate-rcfile to create example good example here https://github.com/PyCQA/pylint/blob/master/pylintrc
dynamic rules `@filter` should work like `phpgrep` CLI filters. What should be changed: 1. There should be no restrictions on the variable expression. `${"x:const"}` should work as well as `$x`;...
This list is work-in-progress. More patterns will be added over time. Proposed patterns: - [ ] `array_values($x)[0]` => `$x[array_key_first($x)]` - [ ] `array_keys($x)[0]` => `array_key_first($x)` When `kphp` mode is enabled,...
**PHP Version:** 8.0 **OS:** Linux **Run command:** test-rules ```shell panic: runtime error: slice bounds out of range [-1:] goroutine 1 [running]: github.com/VKCOM/noverify/src/rules.(*parser).parseRule(0xc0034738c8, {0xb84f10, 0xc006405ce0}, 0xc003473768) /Users/petrmakhnev/noverify/src/rules/parser.go:409 +0x891 github.com/VKCOM/noverify/src/rules.(*parser).parseRules(0xb87120, {0xc001ee2350, 0x400,...
**PHP Version:** 7.0 **OS:** Linux **Run command:** ```shell noverify check [...] ``` **Actual Behavior:** ``` Started Failed parsing stubs/phpstorm-stubs/CONTRIBUTING.md: file has incorrect syntax and cannot be parsed Indexing [...] Linting...
- added new linter rule: declareStrictTypes can not be "0" - added quickFix for declareStrictTypes - added new linter rule: lack of declare(strict_types=1) section - added quickFix for lack of...