PageRenderTime 47ms CodeModel.GetById 20ms RepoModel.GetById 0ms app.codeStats 0ms

/README.md

http://github.com/squizlabs/PHP_CodeSniffer
Markdown | 133 lines | 86 code | 47 blank | 0 comment | 0 complexity | 06ebf79f16afbfce9114d29da4ccf651 MD5 | raw file
  1. ## About
  2. PHP_CodeSniffer is a set of two PHP scripts; the main `phpcs` script that tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard, and a second `phpcbf` script to automatically correct coding standard violations. PHP_CodeSniffer is an essential development tool that ensures your code remains clean and consistent.
  3. [![Build Status](https://github.com/squizlabs/PHP_CodeSniffer/workflows/Validate/badge.svg?branch=master)](https://github.com/squizlabs/PHP_CodeSniffer/actions)
  4. [![Build Status](https://github.com/squizlabs/PHP_CodeSniffer/workflows/Test/badge.svg?branch=master)](https://github.com/squizlabs/PHP_CodeSniffer/actions)
  5. [![Code consistency](http://squizlabs.github.io/PHP_CodeSniffer/analysis/squizlabs/PHP_CodeSniffer/grade.svg)](http://squizlabs.github.io/PHP_CodeSniffer/analysis/squizlabs/PHP_CodeSniffer)
  6. [![Join the chat at https://gitter.im/squizlabs/PHP_CodeSniffer](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/squizlabs/PHP_CodeSniffer?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
  7. ## Requirements
  8. 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](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options) for a list of these requirements.
  9. If you're using PHP_CodeSniffer as part of a team, or you're running it on a [CI](https://en.wikipedia.org/wiki/Continuous_integration) server, you may want to configure your project's settings [using a configuration file](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file).
  10. ## Installation
  11. The easiest way to get started with PHP_CodeSniffer is to download the Phar files for each of the commands:
  12. ```
  13. # Download using curl
  14. curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
  15. curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
  16. # Or download using wget
  17. wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
  18. wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
  19. # Then test the downloaded PHARs
  20. php phpcs.phar -h
  21. php phpcbf.phar -h
  22. ```
  23. ### Composer
  24. If you use Composer, you can install PHP_CodeSniffer system-wide with the following command:
  25. composer global require "squizlabs/php_codesniffer=*"
  26. Make sure you have the composer bin dir in your PATH. The default value is `~/.composer/vendor/bin/`, but you can check the value that you need to use by running `composer global config bin-dir --absolute`.
  27. Or alternatively, include a dependency for `squizlabs/php_codesniffer` in your `composer.json` file. For example:
  28. ```json
  29. {
  30. "require-dev": {
  31. "squizlabs/php_codesniffer": "3.*"
  32. }
  33. }
  34. ```
  35. You will then be able to run PHP_CodeSniffer from the vendor bin directory:
  36. ./vendor/bin/phpcs -h
  37. ./vendor/bin/phpcbf -h
  38. ### Phive
  39. If you use Phive, you can install PHP_CodeSniffer as a project tool using the following commands:
  40. phive install phpcs
  41. phive install phpcbf
  42. You will then be able to run PHP_CodeSniffer from the tools directory:
  43. ./tools/phpcs -h
  44. ./tools/phpcbf -h
  45. ### PEAR
  46. If you use PEAR, you can install PHP_CodeSniffer using the PEAR installer. This will make the `phpcs` and `phpcbf` commands immediately available for use. To install PHP_CodeSniffer using the PEAR installer, first ensure you have [installed PEAR](http://pear.php.net/manual/en/installation.getting.php) and then run the following command:
  47. pear install PHP_CodeSniffer
  48. ### Git Clone
  49. You can also download the PHP_CodeSniffer source and run the `phpcs` and `phpcbf` commands directly from the Git clone:
  50. git clone https://github.com/squizlabs/PHP_CodeSniffer.git
  51. cd PHP_CodeSniffer
  52. php bin/phpcs -h
  53. php bin/phpcbf -h
  54. ## Getting Started
  55. 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:
  56. $ phpcs /path/to/code/myfile.php
  57. Or if you wish to check an entire directory you can specify the directory location instead of a file.
  58. $ phpcs /path/to/code-directory
  59. If you wish to check your code against the PSR-12 coding standard, use the `--standard` command line argument:
  60. $ phpcs --standard=PSR12 /path/to/code-directory
  61. If PHP_CodeSniffer finds any coding standard errors, a report will be shown after running the command.
  62. Full usage information and example reports are available on the [usage page](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage).
  63. ## Documentation
  64. The documentation for PHP_CodeSniffer is available on the [Github wiki](https://github.com/squizlabs/PHP_CodeSniffer/wiki).
  65. ## Issues
  66. Bug reports and feature requests can be submitted on the [Github Issue Tracker](https://github.com/squizlabs/PHP_CodeSniffer/issues).
  67. ## Contributing
  68. See [CONTRIBUTING.md](CONTRIBUTING.md) for information.
  69. ## Versioning
  70. PHP_CodeSniffer uses a `MAJOR.MINOR.PATCH` version number format.
  71. The `MAJOR` version is incremented when:
  72. - backwards-incompatible changes are made to how the `phpcs` or `phpcbf` commands are used, or
  73. - backwards-incompatible changes are made to the `ruleset.xml` format, or
  74. - backwards-incompatible changes are made to the API used by sniff developers, or
  75. - custom PHP_CodeSniffer token types are removed, or
  76. - existing sniffs are removed from PHP_CodeSniffer entirely
  77. The `MINOR` version is incremented when:
  78. - new backwards-compatible features are added to the `phpcs` and `phpcbf` commands, or
  79. - backwards-compatible changes are made to the `ruleset.xml` format, or
  80. - backwards-compatible changes are made to the API used by sniff developers, or
  81. - new sniffs are added to an included standard, or
  82. - existing sniffs are removed from an included standard
  83. > 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.
  84. The `PATCH` version is incremented when:
  85. - backwards-compatible bug fixes are made
  86. > NOTE: As PHP_CodeSniffer 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 PHP_CodeSniffer, and the fixes it makes, are likely to be different between PATCH versions.