noverify

command module
v0.5.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2022 License: MIT Imports: 2 Imported by: 0

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

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
example
playground
src
cmd
git
ir
Code generated by the `ir/codegen` package.
Code generated by the `ir/codegen` package.
ir/irutil
Code generated by the `ir/codegen` package.
Code generated by the `ir/codegen` package.
linttest
Package linttest provides linter testing utilities.
Package linttest provides linter testing utilities.
phpgrep
Package phpgrep is a library for searching PHP code using syntax trees.
Package phpgrep is a library for searching PHP code using syntax trees.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL