Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vkcom/noverify
Pretty fast linter (code static analysis utility) for PHP
https://github.com/vkcom/noverify
go golang linter noverify php
Last synced: about 1 month ago
JSON representation
Pretty fast linter (code static analysis utility) for PHP
- Host: GitHub
- URL: https://github.com/vkcom/noverify
- Owner: VKCOM
- License: mit
- Created: 2019-02-22T12:09:57.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-05T17:04:09.000Z (2 months ago)
- Last Synced: 2024-10-07T10:48:08.941Z (about 1 month ago)
- Topics: go, golang, linter, noverify, php
- Language: Go
- Homepage:
- Size: 32.2 MB
- Stars: 673
- Watchers: 25
- Forks: 57
- Open Issues: 83
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
![](docs/noverify_small.png)
![Build Status](https://github.com/VKCOM/noverify/workflows/Go/badge.svg) [![Go Report Card](https://goreportcard.com/badge/github.com/VKCOM/noverify)](https://goreportcard.com/report/github.com/vkcom/noverify) [![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](/LICENSE) [![Telegram chat](https://img.shields.io/badge/chat-join-brightgreen?logo=telegram)](https://t.me/noverify_linter)
## 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](https://github.com/VKCOM/noverify/issues/new).
- This tool is written in [Go](https://golang.org/) and uses fork of [z7zmey/php-parser](https://github.com/VKCOM/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](/docs/checkers_doc.md)## Playground
Try NoVerify now in [Playground](https://vkcom.github.io/noverify/playground/) (not supported Safari yet).
## Plugins
- [Using NoVerify in PhpStorm](docs/phpstorm-plugin.md)
## User Guide
- [How to install NoVerify](docs/install.md)
Using NoVerify as linter:
- [Using NoVerify as linter / static analyser](docs/getting_started.md)Extending NoVerify:
- [Writing own rules quickly with PHP](docs/dynamic_rules.md)
- [Writing new checks in Go](docs/writing-checks-in-go.md)Using NoVerify as PHP [language server](https://langserver.org) (version **0.3.0** and bellow):
- [Using NoVerify as language server for VSCode](docs/vscode-plugin.md)
- [Using NoVerify as language server for Sublime Text](docs/sublime-plugin.md)
- [Writing new IDE/editor plugin](docs/writing-new-ide-plugin.md)## Contributing
Feel free to contribute to this project. See [CONTRIBUTING.md](https://github.com/VKCOM/noverify/blob/master/CONTRIBUTING.md) for more information. Join [our chat ru](https://t.me/noverify_linter) 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).