Coding Standard 101
Easy way to implement coding standards to your project
About
Easy, (*1)
Requirements
PHP 5.6 or higher., (*2)
Instalation
Easiest and best option via composer.
Just add to composer.json, (*3)
"require-dev": {
"sercode/coding-standard-101": "~0.1"
},
or from command line, (*4)
$ composer require sercode/coding-standard-101 --dev
Basic usage
Run with Code sniffer for check code:, (*5)
vendor/bin/phpcs src --standard=vendor/sercode/coding-standard-101/src/ruleset.xml -p
Run this for fix all errors in project:, (*6)
vendor/bin/phpcbf src --standard=vendor/sercode/coding-standard-101/src/ruleset.xml -p
That's all for really base usage! This check all files in your project against default ruleset.xml, (*7)
How to be safe
Checking only files in commit
In case you don't want to use Php_CodeSniffer manually for every change in the code you make, you can add pre-commit hook via composer.json.
Every time you try to commit, Php_CodeSniffer will run on changed .php files for actual commit only., (*8)
1) Manual usage
"scripts": {
"cs-install-prehook": [
"SerCode\\CodingStandard101\\Composer\\ScriptHandler::addPhpCsToPreCommitHook"
]
}
After you run composer update or composer install just run:, (*9)
composer cs-install-prehook
For proper use of all features you have to run this script, (*10)
If you don't change path to ruleset.xml (see bellow), you don't need to run this script again, (*11)
2) if you are lazy or just be sure
Just add some code:, (*12)
"scripts": {
"post-install-cmd": [
"@post-update-cmd"
],
"post-update-cmd": [
"@cs-install-prehook"
],
"cs-install-prehook": [
"SerCode\\CodingStandard101\\Composer\\ScriptHandler::addPhpCsToPreCommitHook"
]
}
This secure install git commit prehook every time when you run composer update or composer install., (*13)
First case is starts after you run composer install, second when composer update and install prehook with path to ruleset.xml. For more information see below., (*14)
If you want commit without running codesniffer, just add --no-verify to commit command:, (*15)
git commit -m "TEST" --no-verify
Fixing only files in commit
To composer.json put:, (*16)
"scripts": {
"fix-cs-commit": [
"SerCode\\CodingStandard101\\Composer\\ScriptHandler::fixCsCommit"
]
}
and run, (*17)
composer fix-cs-commit
Advanced usage
(will be added), (*18)
You can create own rulest., (*19)
Create confgi file .csStandard with path to ruleset, inport differetn packages with codding
standards and use them in your ruleset.xml., (*20)
...., (*21)
Setup for MALL
add to composer.json to section require-dev "sercode/coding-standard-101": "^0.1" and add block, (*22)
"scripts": {
"cs-install-prehook": [
"SerCode\\CodingStandard101\\Composer\\ScriptHandler::addPhpCsToPreCommitHook"
],
"fix-cs-commit": [
"SerCode\\CodingStandard101\\Composer\\ScriptHandler::fixCsCommit"
]
}
in root of project create file .csStandard with content, (*23)
[ruleset]
0 = phpcs-ruleset.xml
run composer cs-install-prehook for install, (*24)
for fix commitig files run script, (*25)
composer fix-cs-commit
** Files for fix (or check) MUST be in stage. That means dont commit with adding all files by -a option (git commit -a -m "commit message") **, (*26)
Inspired by https://github.com/DeprecatedPackages/CodingStandard, (*27)