vkcom/noverify

Pretty fast linter (code static analysis utility) for PHP

Installs: 46 976

Dependents: 2

Suggesters: 0

Security: 0

Stars: 674

Watchers: 25

Forks: 57

Open Issues: 86

Language:Go


README

Build Status Go Report Card GitHub license Telegram chat

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

  1. Fast: analyze ~100k LOC/s (lines of code per second) on Core i7;
  2. Incremental: can analyze changes in git and show only new reports. Indexing speed is ~1M LOC/s;
  3. Auto fixes for some warnings;
  4. PHP 7 and PHP 8 support;
  5. 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):

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).