An artisan command to check your code standards via pre-commit git hook
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
config
resources
src
.gitignore
LICENSE
README.md
composer.json

README.md

laravel-git-sniffer

An artisan command to check your code standards via pre-commit git hook

Install with composer

composer require avirdz/laravel-git-sniffer

Add the provider to app config (You don't need to do this if using Laravel >= 5.5)

Avirdz\LaravelGitSniffer\GitSnifferServiceProvider

Use artisan to publish the config

php artisan vendor:publish --provider="Avirdz\LaravelGitSniffer\GitSnifferServiceProvider" --tag=config

Run artisan command to copy the pre-commit hook

php artisan git-sniffer:copy

If you are working with other developers and you prefer each time that someone makes a clone and runs composer install, the hook is automatically copied, just add the copy command to the composer scripts, anyways it runs only on the defined environment, which by default is local.

"post-install-cmd": [
    "...laravel commands..."
    "php artisan git-sniffer:copy"
],

Config

Key Value Description
env (string) default: local The environment where the commands will be executed.
phpcs_bin (string) default: ./vendor/bin/phpcs bin for Php_CodeSniffer, installed as a dependency.
standard (string) default: PSR2 Code standard
encoding (string) default: utf-8 The encoding of your source files
extensions (array) default: php Valid php file extensions to check
phpcs_ignore (array) default: ./resources/views/* Blade templates are ignored by default
temp (string) default: .tmp_staging A temp directory where staged files will be copied
eslint_bin (string) bin for ESLint
eslint_config (string) Path to the eslintrc config file
eslint_extensions (array) default: js Valid js file extensions to check
eslint_ignore_path (string) Path to the .eslintignore file.

Note: Eslint ignores all hidden files and directories by default, since there is a temp staging folder and by default is hidden, you need to add it to the eslintignore files at the first line.

!.tmp_staging
otherfile.js

If you leave eslint_bin config empty it will be ignored, the same for phpcs_bin, but you need to configure at least one of them.

Resources

I'ts the same script just translated to php to work with laravel command.

License

MIT