noverify icon indicating copy to clipboard operation
noverify copied to clipboard

Pretty fast linter (code static analysis utility) for PHP

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

  • Using NoVerify in PhpStorm

User Guide

  • How to install NoVerify

Using NoVerify as linter:

  • Using NoVerify as linter / static analyser

Extending NoVerify:

  • Writing own rules quickly with PHP
  • Writing new checks in Go

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