VKCOM / noverify

Pretty fast linter (code static analysis utility) for PHP

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Pretty fast linter (code static analysis utility) for PHP

License:MIT License


Languages

Language:Go 93.1%Language:JavaScript 2.9%Language:PHP 1.5%Language:TypeScript 0.9%Language:CSS 0.8%Language:HTML 0.7%Language:Makefile 0.2%