Need help with PHP_CodeSniffer?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

8.9K Stars 1.4K Forks BSD 3-Clause "New" or "Revised" License 6.9K Commits 285 Opened issues


PHP_CodeSniffer tokenizes PHP files and detects violations of a defined set of coding standards.

Services available


Need anything else?

Contributors list


PHPCodeSniffer is a set of two PHP scripts; the main

script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second
script to automatically correct coding standard violations. PHP
CodeSniffer is an essential development tool that ensures your code remains clean and consistent.

Build Status Build Status Code consistency Join the chat at


PHP_CodeSniffer requires PHP version 5.4.0 or greater, although individual sniffs may have additional requirements such as external applications and scripts. See the Configuration Options manual page for a list of these requirements.

If you're using PHP_CodeSniffer as part of a team, or you're running it on a CI server, you may want to configure your project's settings using a configuration file.


The easiest way to get started with PHP_CodeSniffer is to download the Phar files for each of the commands: ```

Download using curl

curl -OL curl -OL

Or download using wget

wget wget

Then test the downloaded PHARs

php phpcs.phar -h php phpcbf.phar -h ```


If you use Composer, you can install PHP_CodeSniffer system-wide with the following command:

composer global require "squizlabs/php_codesniffer=*"

Make sure you have the composer bin dir in your PATH. The default value is

, but you can check the value that you need to use by running
composer global config bin-dir --absolute

Or alternatively, include a dependency for

in your
file. For example:
    "require-dev": {
        "squizlabs/php_codesniffer": "3.*"

You will then be able to run PHP_CodeSniffer from the vendor bin directory:

./vendor/bin/phpcs -h
./vendor/bin/phpcbf -h


If you use Phive, you can install PHP_CodeSniffer as a project tool using the following commands:

phive install phpcs
phive install phpcbf

You will then be able to run PHP_CodeSniffer from the tools directory:

./tools/phpcs -h
./tools/phpcbf -h


If you use PEAR, you can install PHPCodeSniffer using the PEAR installer. This will make the

commands immediately available for use. To install PHP
CodeSniffer using the PEAR installer, first ensure you have installed PEAR and then run the following command:

pear install PHP_CodeSniffer

Git Clone

You can also download the PHP_CodeSniffer source and run the

commands directly from the Git clone:
git clone
cd PHP_CodeSniffer
php bin/phpcs -h
php bin/phpcbf -h

Getting Started

The default coding standard used by PHP_CodeSniffer is the PEAR coding standard. To check a file against the PEAR coding standard, simply specify the file's location:

$ phpcs /path/to/code/myfile.php

Or if you wish to check an entire directory you can specify the directory location instead of a file.

$ phpcs /path/to/code-directory

If you wish to check your code against the PSR-12 coding standard, use the

command line argument:
$ phpcs --standard=PSR12 /path/to/code-directory

If PHP_CodeSniffer finds any coding standard errors, a report will be shown after running the command.

Full usage information and example reports are available on the usage page.


The documentation for PHP_CodeSniffer is available on the Github wiki.


Bug reports and feature requests can be submitted on the Github Issue Tracker.


See for information.


PHP_CodeSniffer uses a

version number format.


version is incremented when: - backwards-incompatible changes are made to how the
commands are used, or - backwards-incompatible changes are made to the
format, or - backwards-incompatible changes are made to the API used by sniff developers, or - custom PHPCodeSniffer token types are removed, or - existing sniffs are removed from PHPCodeSniffer entirely


version is incremented when: - new backwards-compatible features are added to the
commands, or - backwards-compatible changes are made to the
format, or - backwards-compatible changes are made to the API used by sniff developers, or - new sniffs are added to an included standard, or - existing sniffs are removed from an included standard

NOTE: Backwards-compatible changes to the API used by sniff developers will allow an existing sniff to continue running without producing fatal errors but may not result in the sniff reporting the same errors as it did previously without changes being required.


version is incremented when: - backwards-compatible bug fixes are made

NOTE: As PHPCodeSniffer exists to report and fix issues, most bugs are the result of coding standard errors being incorrectly reported or coding standard errors not being reported when they should be. This means that the messages produced by PHPCodeSniffer, and the fixes it makes, are likely to be different between PATCH versions.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.