vkcom / noverify
Pretty fast linter (code static analysis utility) for PHP
Installs: 47 920
Dependents: 2
Suggesters: 0
Security: 0
Stars: 677
Watchers: 25
Forks: 57
Open Issues: 79
Language:Go
Requires
- php: >=7.1
- ext-zip: *
- dev-master
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- dev-hidanio/ruleset_path_filter
- dev-hidanio/go_up_21
- dev-hidanio/deprecated_support_classes_fields
- dev-danil42russia/loading_only_php_files_from_embedded_stubs
- dev-hidanio/linter_supress_dnr
- dev-hidanio/dangerous_bool_condition
- dev-hidanio/ruleset_prototype
- dev-hidanio/phpDoc_to_typeHint
- dev-hidanio/linter_declare_absence
- dev-hidanio/update_go_1.21
- dev-linter_declare_strict
- dev-hidanio/unused_use
- dev-danil42russia/update_ignore_reports_for_auto_gen_files
- dev-pmakhnev/ir_ifaces
- dev-pmakhnev/new_output_for_reports
- dev-pmakhnev/ir_interfaces
- dev-pmakhnev/redesign
- dev-pmakhnev/compatible_class
This package is auto-updated.
Last update: 2024-12-19 21:42:12 UTC
README
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).