PHPackages                             vkcom/noverify - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Testing &amp; Quality](/categories/testing)
4. /
5. vkcom/noverify

ActiveLibrary[Testing &amp; Quality](/categories/testing)

vkcom/noverify
==============

Pretty fast linter (code static analysis utility) for PHP

v0.5.5(1y ago)68965.7k↓34.9%60[67 issues](https://github.com/VKCOM/noverify/issues)[9 PRs](https://github.com/VKCOM/noverify/pulls)3MITGoPHP &gt;=7.1

Since Aug 30Pushed 5mo ago22 watchersCompare

[ Source](https://github.com/VKCOM/noverify)[ Packagist](https://packagist.org/packages/vkcom/noverify)[ Docs](https://github.com/VKCOM/noverify)[ RSS](/packages/vkcom-noverify/feed)WikiDiscussions master Synced yesterday

READMEChangelog (10)DependenciesVersions (23)Used By (3)

[![](docs/noverify_small.png)](docs/noverify_small.png)

[![Build Status](https://github.com/VKCOM/noverify/workflows/Go/badge.svg)](https://github.com/VKCOM/noverify/workflows/Go/badge.svg) [![Go Report Card](https://camo.githubusercontent.com/4583266be4aab05a273dbe752282228a125c630811aac7930e12e040aca0741d/68747470733a2f2f676f7265706f7274636172642e636f6d2f62616467652f6769746875622e636f6d2f564b434f4d2f6e6f766572696679)](https://goreportcard.com/report/github.com/vkcom/noverify) [![GitHub license](https://camo.githubusercontent.com/7013272bd27ece47364536a221edb554cd69683b68a46fc0ee96881174c4214c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d626c75652e737667)](/LICENSE) [![Telegram chat](https://camo.githubusercontent.com/c98576a735a628383004259c129c6008073e3e367876116fb48e5abfd88790df/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f636861742d6a6f696e2d627269676874677265656e3f6c6f676f3d74656c656772616d)](https://t.me/noverify_linter)

NoVerify
--------

[](#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
--------

[](#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
-------------

[](#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
----------

[](#playground)

Try NoVerify now in [Playground](https://vkcom.github.io/noverify/playground/) (not supported Safari yet).

Plugins
-------

[](#plugins)

- [Using NoVerify in PhpStorm](docs/phpstorm-plugin.md)

User Guide
----------

[](#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
------------

[](#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
-----------

[](#the-license)

NoVerify is distributed under the MIT License, on behalf of VK LLC.

###  Health Score

49

—

FairBetter than 94% of packages

Maintenance57

Moderate activity, may be stable

Popularity52

Moderate usage in the ecosystem

Community37

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 55.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~266 days

Recently: every ~331 days

Total

6

Last Release

437d ago

PHP version history (2 changes)v0.5.0PHP &gt;=7.0

v0.5.3PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/240434d174eb40dd828dc69bf885b12f9effff2c95b3da629cdb2bfd10846ad9?d=identicon)[vk\_com](/maintainers/vk_com)

---

Top Contributors

[![quasilyte](https://avatars.githubusercontent.com/u/6286655?v=4)](https://github.com/quasilyte "quasilyte (540 commits)")[![i582](https://avatars.githubusercontent.com/u/51853996?v=4)](https://github.com/i582 "i582 (308 commits)")[![YuriyNasretdinov](https://avatars.githubusercontent.com/u/575929?v=4)](https://github.com/YuriyNasretdinov "YuriyNasretdinov (32 commits)")[![Hidanio](https://avatars.githubusercontent.com/u/36065987?v=4)](https://github.com/Hidanio "Hidanio (26 commits)")[![abbit](https://avatars.githubusercontent.com/u/23701396?v=4)](https://github.com/abbit "abbit (14 commits)")[![Danil42Russia](https://avatars.githubusercontent.com/u/6605618?v=4)](https://github.com/Danil42Russia "Danil42Russia (11 commits)")[![edgardmessias](https://avatars.githubusercontent.com/u/1530997?v=4)](https://github.com/edgardmessias "edgardmessias (5 commits)")[![tonygoold](https://avatars.githubusercontent.com/u/4601698?v=4)](https://github.com/tonygoold "tonygoold (4 commits)")[![ludweeg](https://avatars.githubusercontent.com/u/31108067?v=4)](https://github.com/ludweeg "ludweeg (4 commits)")[![whisk](https://avatars.githubusercontent.com/u/437742?v=4)](https://github.com/whisk "whisk (4 commits)")[![ngkoshkin](https://avatars.githubusercontent.com/u/938906?v=4)](https://github.com/ngkoshkin "ngkoshkin (2 commits)")[![proggga](https://avatars.githubusercontent.com/u/12262156?v=4)](https://github.com/proggga "proggga (2 commits)")[![bvwells](https://avatars.githubusercontent.com/u/22873967?v=4)](https://github.com/bvwells "bvwells (2 commits)")[![sergey-shambir](https://avatars.githubusercontent.com/u/1856842?v=4)](https://github.com/sergey-shambir "sergey-shambir (2 commits)")[![setpill](https://avatars.githubusercontent.com/u/37372069?v=4)](https://github.com/setpill "setpill (1 commits)")[![sosiska](https://avatars.githubusercontent.com/u/969838?v=4)](https://github.com/sosiska "sosiska (1 commits)")[![tamaravedenina](https://avatars.githubusercontent.com/u/36485070?v=4)](https://github.com/tamaravedenina "tamaravedenina (1 commits)")[![u5surf](https://avatars.githubusercontent.com/u/14180225?v=4)](https://github.com/u5surf "u5surf (1 commits)")[![vajexal](https://avatars.githubusercontent.com/u/72415539?v=4)](https://github.com/vajexal "vajexal (1 commits)")[![blascsi](https://avatars.githubusercontent.com/u/5846127?v=4)](https://github.com/blascsi "blascsi (1 commits)")

---

Tags

gogolanglinternoverifyphp

### Embed Badge

![Health badge](/badges/vkcom-noverify/health.svg)

```
[![Health](https://phpackages.com/badges/vkcom-noverify/health.svg)](https://phpackages.com/packages/vkcom-noverify)
```

###  Alternatives

[dms/phpunit-arraysubset-asserts

This package provides ArraySubset and related asserts once deprecated in PHPUnit 8

14429.2M360](/packages/dms-phpunit-arraysubset-asserts)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
