NoVerify
NoVerify is a PHP linter: it finds possible bugs and style violations in your code.
- NoVerify has no config: any reported issue in your PHPDoc or PHP code must be fixed.
- NoVerify aims to understand PHP code at least as well as PHPStorm does. If it behaves incorrectly or sub optimally, please report issue.
- This tool is written in Go and uses fork of z7zmey/php-parser.
Features
- Fast: analyze ~100k LOC/s (lines of code per second) on Core i7;
- Incremental: can analyze changes in git and show only new reports. Indexing speed is ~1M LOC/s;
- Auto fixes for some warnings;
- PHP 7 and PHP 8 support;
- Diff and baseline modes support.
Default lints
NoVerify by default has the following checks:
- Unreachable code
- Too few arguments when calling a function/method
- Call to undefined function/method
- Fetching of undefined constant/class property
- Class not found
- PHPDoc is incorrect
- Undefined variable
- Variable not always defined
- Case without
break;
- Syntax error
- Unused variable
- Incorrect access to private/protected elements
- Incorrect implementation of
IteratorAggregate
interface - Incorrect array definition, e.g. duplicate keys
- And others, you can see the entire list here
Playground
Try NoVerify now in Playground (not supported Safari yet).
Plugins
User Guide
Using NoVerify as linter:
Extending NoVerify:
Using NoVerify as PHP language server (version 0.3.0 and bellow):
- Using NoVerify as language server for VSCode
- Using NoVerify as language server for Sublime Text
- Writing new IDE/editor plugin
Contributing
Feel free to contribute to this project. See CONTRIBUTING.md for more information. Join our chat ru in a telegram if you want to discuss something.
The License
NoVerify is distributed under the MIT License, on behalf of VK.com (V Kontakte LLC).